我想在新记录进入数据库时根据所选表单字段生成一个自定义事务ID。格式应该是
2020/John UK/1012/001, 2020/John Uk/1012/002
其中2020年为季节,John为供应商名称,UK为地点,1012为日期,001为当天计数
计数应始终从001开始,并根据供应商、地点和日期增加。例如,如果同一供应商第二天从同一地点带来货物,则ID应为
2020/John UK/1112/001
如果来自不同的地点和相同的日期,则ID将
2020/John US/1112/001
models.py
class Goods_Supply(BaseModel):
transaction_id = models.CharField(max_length=50, default="_", blank=True)
supplier_name = models.ForeignKey(adminModels.Supplier, on_delete=models.CASCADE, null=True, blank=True)
season = models.ForeignKey( adminModels.Season, on_delete=models.CASCADE, blank=True, null=True)
location = models.ForeignKey( adminModels.Location, on_delete=models.CASCADE, blank=True, null=True)
transaction_date = models.DateField(auto_now=False, auto_now_add=False, null=True, blank=True)
quantity = models.IntegerField(blank=True, default=0, null=True)
def __str__(self):
return self. transaction_id
类位置(基本模型):
location_name = models.CharField(max_length=50)
country = models.ForeignKey(Country, on_delete=models.CASCADE)
def __str__(self):
return self.location
类别供应商(基本型号):
supplier_name = models.CharField(max_length=50)
license = models.CharField(max_length=50, default="_")
prefix = models.CharField(max_length=50, default="_")
rep = models.CharField(max_length=50, default="_")
phone = models.CharField(max_length=50, default="_")
email = models.CharField(max_length=50, default="_")
status = models.IntegerField(default=0)
visible = models.BooleanField(default=False)
def __str__(self):
return self.supplier_name
forms.py
class GoodSupplyForms(ModelForm):
class Meta:
model = Models.Goods_Supply
fields = ["transaction_id", "supplier_name", "season", " location", "transaction_date”, “quantity”]
goods_supply.py
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from django.template import loader
from django.core.paginator import Paginator
import CMCADMIN.models as adminModels
from SS.models import Goods_Supply
from SS.forms import GoodSupplyForms
from django.urls import reverse
def get_post_handler(request):
if request.method == 'GET':
return get(request)
else:
return post(request)
def get(request):
template = loader.get_template("SS/goods_supply.html")
goodssupply = Goods_Supply.objects.all()
paginator = Paginator(ss_registrations, 10)
page_number = request.GET.get('page')
page_obj = paginator.get_page(page_number)
context = {'goodssupply': page_obj, 'adminModels': adminModels}
return HttpResponse(template.render(context, request))
def post(request):
if request.method == 'POST':
goodsForm = GoodSupplyForms(request.POST)
if goodsForm.is_valid():
goodsForm.save()
print('Success')
return HttpResponseRedirect(reverse("SS:goods_supply”))
else:
return HttpResponse(goodsForm..errors.as_json())
return HttpResponseRedirect(reverse("SS:goods_supply”))
您必须重写save方法
相关问题 更多 >
编程相关推荐