Django 使用基于ModelForm的表单中的数据填充外键字段
我已按如下所示设置了我的模型: Models.pyDjango 使用基于ModelForm的表单中的数据填充外键字段,django,django-forms,Django,Django Forms,我已按如下所示设置了我的模型: Models.py class Customer(models.Model): CustomerID = models.CharField(max_length=50) Name = models.CharField(max_length=50) Mobile = models.CharField(max_length=15) def __unicode__(self): return self.Customer
class Customer(models.Model):
CustomerID = models.CharField(max_length=50)
Name = models.CharField(max_length=50)
Mobile = models.CharField(max_length=15)
def __unicode__(self):
return self.CustomerID
class orderHistory(models.Model):
BookingNumber = models.CharField(max_length=50)
customer = models.ForeignKey(Customer)
def __unicode__(self):
return self.BookingNumber
我还使用ModelForm设置了forms.py:
class customerForm(ModelForm):
class Meta:
model = Customer
exclude = ['CustomerID']
my views.py中的函数如下所示:
if request.method == 'POST':
form = customerForm(request.POST or None)
# check whether it's valid:
if form.is_valid():
instance = form.save()
if not instance.CustomerID:
instance.CustomerID = 'DHOBI' + instance.Mobile
instance.save()
return HttpResponseRedirect('/data/test')
else:
form = customerForm()
return render(request, "data/index.html",{'form':form})
我的问题是,在获得客户模型的数据后,如何将BookingNumber中的数据填入数据库?我的意思是,如果我想将预订号码设置为Mobile+今天的日期和时间。
我该怎么做呢
import datetime
bn = "%s-%s" % (instance.Mobile,str(datetime.datetime.now())
order_hist = orderHistory.objects.create(customer=instance, BookingNumber=bn)
只需注意类的命名:将类命名为大写,属性命名为小写。你把它倒过来