簡體   English   中英

ManyToMany字段作為.objects.create()函數的參數

[英]ManyToMany field as an argument to .objects.create() function

我有2個班級, DesignOrder 我正在嘗試在views.py中創建一個Order對象,並且在執行該操作時希望將Design對象作為.objects.create()的參數,但出現此錯誤:“'design'是無效的關鍵字該函數的參數”,我認為這是因為Design是Order模型中的ManyToMany字段。 想知道我該怎么辦? 太感謝了。 models.py:

class Design(models.Model):
    dimension=models.CharField(max_length=15, blank=True, null=True)
    image=models.FileField(upload_to='images/%Y/%m/%d')
    number_of_colors=models.IntegerField(blank=True, null=True)
    sides=models.IntegerField(verbose_name='side(s)')

class Order(models.Model):
    o_type=models.CharField(max_length=15, verbose_name='Order type', null=True)
    number=models.IntegerField()
    date=models.DateField()
    status=models.CharField(max_length=25, null=True, blank=True)
    delivery_date=models.DateField(null=True, blank=True)
    customer=models.ForeignKey(Customer)
    design=models.ManyToManyField(Design)
    outSource=models.OneToOneField(OutSource, blank=True, null=True)

views.py:

def upload(request):
    if request.method=='POST':
        print "entered upload"
        image=request.FILES.get('upload', False)
        sides=request.POST.get('sides', False)
        number=request.POST.get('number', False)
        design=Design.objects.create(image=image, sides=sides)
        now = datetime.datetime.now()
        customer=Customer.objects.get(user=request.user)
        order=Order.objects.create(customer=customer, date=now, number=number, design=design)
        return HttpResponseRedirect("/home/")

不可能在create添加ManytoManyField ,因為ManyToManyField涉及用於數據庫查詢的中間表。

您將需要兩個查詢:

order=Order.objects.create(customer=customer, date=now, number=number)
order.design.add(design)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM