-2

在这里,我将在我的产品表(db)中添加新项目。但我面临一个错误,比如
在我的产品表中我有 vendor_id 作为外键

这是我的观点.py

    def add1(request):
         obj = Vendor.objects.all()
        return  render_to_response('add_product1.html',{'obj':    
                                                    obj},context_instance=RequestContext(request))


def add_product2(request):
    if request.method == 'GET':

        val0 = request.GET.get('options')
        val1 = request.GET.get('name')
        val2 = request.GET.get('price')
        val3 = request.GET.get('category_product')
        val4 = request.GET.get('quantity')
        v = Product(Vendor= val0,name=val1,price=val2,category_product=val3,quantity= val4)
        v.save()
        return HttpResponseRedirect('/manage_product')

这是模型

class Vendor(models.Model):
    name = models.CharField(max_length=30)
    address = models.CharField(max_length=100)
    contact = models.CharField(max_length=100)
    created_date = models.DateField()
    class Product(models.Model):
    Vendor = models.ForeignKey(Vendor)
    name = models.CharField(max_length=30)
    price = models.CharField(max_length=40)
    category_product= models.CharField(max_length=40)
    quantity = models.CharField(max_length=40)

在 add_product1.html

<form action="/add_product2/" method="POST">

     id : <select name='options' >
    {% for Vendor in obj %}
    <option  value='0' >{{Vendor.id}}</option>
    {%endfor%}
    </select><br />

   Product  Name:<input type ='text' name= 'name' value =''></br>
   Price : <input type ='text' name= 'price' value =  ''></br>
   Category_product :<input  type = 'text' name= 'category_product' value = ''></br>
   Quantity: <input  type ='text' name='quantity' value = ''></br>
   <input type='submit' name='Submit' value='add' />
   </form>
4

2 回答 2

0

您应该使用 ModelForm,它有一些有用的工具,如验证、自动表单创建等......:https ://docs.djangoproject.com/en/1.4/topics/forms/modelforms/

ModelForm 会将字段Vendor放入<select>输入中。

于 2013-02-26T13:05:10.013 回答
0


这是我们应该在值中做的答案

id : <select name='my_options' >
{% for Vendor in obj %}
    <option  value='{{Vendor.id}}' >{{Vendor.name}}</option>
    {%endfor%}
    </select><br />

然后顺利交出外键

于 2013-02-28T07:11:06.923 回答