我是Django开发的新手,并且我有一个与ZipCode模型有关系的客户模型。因此,我要从客户模型中获取ZipCode模型中的zipCode。这样,ZipCode模型具有4个属性,例如pk(其为aut_increment),zipCode(其为唯一),城市和州。因此,我的问题是:如何在客户模型中获取zipCode属性作为外键,以及如何编写保存客户对象的视图?以下是客户和ZipCode模型:
class Customers(models.Model):
customerID = models.CharField(max_length=15, unique=True)
firstName = models.CharField(max_length=20)
lastName = models.CharField(max_length=25)
phoneNumber = models.CharField(max_length=14)
zipCode = models.ForeignKey(ZipCode, on_delete=models.CASCADE)
address = models.TextField()
class ZipCode(models.Model):
zipCode = models.CharField(max_length=10, unique=True)
city = models.CharField(max_length=30)
state = models.CharField(max_length=25)
def __str__(self):
return self.zipCode + ' ' + self.city + ' ' + self.state
这里的视图add_customers也不起作用:
def add_Custmers(request):
# try:
# zipCode=ZipCode.objects.get(slug=zipcode_slug)
# except ZipCode.DoesNotExist:
# zipCode=None
form=CustomersForm(request.POST or None)
if form.is_valid():
form.save()
context = {'form': form}
return render(request, 'customers.html', context
我附上了添加客户表格以获取更多详细信息
class CustomersForm(forms.ModelForm):
customerID = forms.CharField(max_length=15)
firstName = forms.CharField(max_length=20)
lastName = forms.CharField(max_length=25)
phoneNumber = forms.CharField(max_length=14)
zipCode = forms.ModelChoiceField(queryset=ZipCode.objects.all())
address = forms.Textarea()
class Meta:
model=Customers
fields=('customerID','firstName','lastName','phoneNumber', 'zipCode', 'address',)
以上是我定义的表格
答案 0 :(得分:0)
执行以下操作,而不是在检查表单是否有效之后立即保存表单:
if form.is_valid():
customer = form.save(commit=False)
customer.zipCode = request.zipCode
form.save()
让我知道它是否仍然无法正常工作。
编辑:对不起,我们没有更早进行检查。应该是request.POST['zipCode']
而不是request.zipCode