微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Django 中保存 HTML 表单时保存外键字段?

如何解决如何在 Django 中保存 HTML 表单时保存外键字段?

我想将一个 html 表单数据保存到 django 模型中,但它有一个来自另一个模型的外键字段。如何保存具有 FK 字段的表单?

我的模型:

class dish(models.Model):
    title =models.CharField(max_length=200)
    description =models.TextField(blank=True) 
    price =models.IntegerField()
    photo_main= models.ImageField(upload_to="photos/%Y%m%d/") 
    photo_1= models.ImageField(upload_to="photos/%Y%m%d/",blank= True)
    photo_2= models.ImageField(upload_to="photos/%Y%m%d/",blank= True)
    def __str__(self):
        return self.title

class Order(models.Model):
    dishorder= models.ForeignKey(dish,null=True,on_delete=models.CASCADE)
    name = models.CharField(max_length=200,blank=True)
    email = models.CharField(max_length=100,blank=True)
    phone = models.CharField(max_length=100,blank=True)
    quantity =models.IntegerField(blank=True)
    def __str__(self): 
        return self.name

我的观点:

def order(request):
    if request.method == 'POST':
        name = request.POST['name']
        email = request.POST['email']
        phone = request.POST['phone']
        quantity = request.POST['quantity']
        order= Order(
            name=name,email=email,phone=phone,quantity=quantity)
        order.save()
        messages.success(request,"Your order has been submitted.")
    return render(request,"dishes/order.html")

我的网址:

urlpatterns = [
    path("dish",views.dish,name="dish"),path("dish/<pk>",views.dishsingle,name="dishsingle"),path("order",views.order,name="order"),]

我的模板菜肴/order.html

<form method="POST">
        {% csrf_token %}
        <div>
          <label for="name">Name:</label>
          <input type="text" name="name" class="form-control" required>
        </div>
        <div>
          <label for="email">Email:</label>
          <input type="email" name="email" class="form-control" required>
        </div>
        <div>
          <label for="phone">Phone:</label>
          <input type="number" name="phone" class="form-control" required>
        </div>
        <div>
          <label for="quantity">Quantity:</label>
          <input type="number" name="quantity" class="form-control" required>
        </div>
        <hr>
        <input type="submit" value="MAKE AN ORDER">
      </form>

在提交此 html 表单时,我希望将外键字段乱序也保存在后端。当我检查管理页面时,订单已保存,但没有菜名。我该如何解决

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。