在插入数据时,我得到了这个错误。这可能是由于默认主键的更改所致。我不想输入ticket_id字段,因为我已经为该字段设置了默认值(默认值=‘as 000001’)
models.py
class Ticket(models.Model):
ticket_id = models.AutoField(primary_key=True, default='NS000001', editable=False)
server_details = models.CharField(max_length=100)
send_date = models.DateTimeField(default=timezone.now)
license_no = models.CharField(max_length=25)
file = models.FileField(upload_to='documents/%Y/%m/%d/')
def __str__(self):
return self.ticket_idviews.py
def Index(request):
if request.method == "POST":
form = SaveTicket(request.POST,request.FILES or None)
if form.is_valid():
form.save()
print(form)
return redirect('index')
else:
form = SaveTicket()
return render(request, 'index.html')forms.py
class SaveTicket(forms.ModelForm):
class Meta:
model = Ticket
fields = ['server_details','send_date','license_no','file']发布于 2022-09-18 10:57:03
第一
你不需要自己定义Autofield。
class Ticket(models.Model):
server_details = models.CharField(max_length=100)
send_date = models.DateTimeField(default=timezone.now)
license_no = models.CharField(max_length=25)
file = models.FileField(upload_to='documents/%Y/%m/%d/')第二
如果您的票证ID是静态的,您可以创建一个属性:
class Ticket(models.Model):
... # any staff here
@property
def ticket_id(self):
return f'NS{(self.pk or 0):06d}'最后的
在此之后,您可以在任何地方使用它:
print(ticket.ticket_id)
>>>'NS2134154'https://stackoverflow.com/questions/73761357
复制相似问题