django - Django Form 和两个带外键的表单
问题描述
我有这些模型:
class Customers(models.Model):
ID = models.AutoField(primary_key=True)
...
def __str__(self):
return str(self.ID)
class CustomerAddresses(models.Model):
ID = models.AutoField(primary_key=True)
...
CustomerNoID = models.ForeignKey('Customers', on_delete=models.CASCADE)
def __str__(self):
return str(self.ID)
和我的观点:
def add_customer_view(request):
user_id = request.user.id
last_customerno = Customers.objects.filter(UserID=user_id).order_by('CustomerNo').last()
if not last_customerno:
# return '0001'
last_customerno = 1000
if last_customerno == 1000:
customerno_int = 1000
else:
customerno_int = last_customerno.CustomerNo + 1
# if this is a POST request we need to process the form data
if request.method == 'POST':
customer_form = CustomerForm(request.user.id, request.POST)
customer_address_form = CustomerAddressesForm(request.user.id, request.POST)
if customer_form.is_valid():
new_customer = customer_form.save(commit=False)
new_customer.save()
if customer_address_form.is_valid():
new_address = customer_address_form.save(commit=False)
new_address.CustomerNoID = new_customer
new_address.save()
return HttpResponseRedirect('/backend/kunder/')
else:
customer_form = CustomerForm(request.user.id, initial={'CustomerNo': customerno_int})
customer_address_form = CustomerAddressesForm(request.user.id)
return render(
request,
'backend/add_customer.html',
{
'title': 'WestcoastShop - Backend',
'customer_form': customer_form,
'customer_address_form': customer_address_form
}
)
但只是客户创建的不是地址,我认为表单缺少 CustomerNoID,我认为我得到了正确的方法,但 6 小时后我放弃了,也许这是一个聪明的人如何发现错误。
问候。
解决方案
我更改了表单并在模态中添加了第二个,因此我可以保存两个不相关的模型。
推荐阅读
- asp.net-mvc - 指定实现时带有接口类的 WebAPI 模型 [ModelBinder]
- python - How to get ckeditor field value in modelform after submit in Django2.1?
- ms-access - 连接 Power BI 以通过网络访问数据库
- javascript - 直方图:所有 bin 的长度为 0
- android - 进程可以在android中共享变量吗?
- angular - Angular7 - 使用去抖动器时视图不会更新
- node.js - 在 pupeteer Node.js 中获取 href 属性
- prism - 我们可以让一个 .exe 使用 XAML 和 Prism(用于 MVVM)调用 .dll 吗?
- python-3.x - 如何修复以下警告:`WARN: The resource for '' is not found, 无法深入了解此测试的详细信息。`
- python - SqlAlchemy filter_by 与包含列表的 kwargs