簡體   English   中英

Django-Formset和Inline Formset的用例?

[英]Django - Usecases for Formset and Inline Formset?

我真的不確定要使用哪一個(Formset或Inline Formset)。

我有一個在線送貨申請表,用於預訂自行車。 有不止一種類型的自行車,因此,我有兩種型號“ DeliveryRequests”和“ DeliveryRequestBikes”。

class DeliveryRequests(models.Model):
    pickup_date = models.DateField()
    return_date = models.DateField()
    pickup_hour = models.TimeField()
    return_hour = models.TimeField()
    name = models.CharField(max_length=100, null=False, blank=False)
    email = models.EmailField(null=False, blank=False)
    phone = models.CharField(max_length=25, null=False, blank=False)
    location_name = models.CharField(max_length=100, null=False, blank=False)
    address_to_delivery = models.CharField(max_length=200, null=False, blank=False)
    message = models.TextField(null=True, blank=True)
    deliveryrequeststatus = models.ForeignKey(DeliveryRequestStatus, null=False, blank=False)
    comment = models.TextField(null=True, blank=True)
    date_insert = models.DateTimeField(auto_now_add=True)
    date_last_modification = models.DateTimeField(auto_now=True)  

    def __unicode__(self):
        return self.name

    class Meta: # To order in the admin by name of the section
        ordering = ['-id']   


class DeliveryRequestBikes(models.Model):
    deliveryrequest = models.ForeignKey(DeliveryRequests, null=False, blank=False)
    biketype = models.ForeignKey(BikeTypes, null=False, blank=False)
    units = models.IntegerField(null=False, blank=False)
    date_insert = models.DateTimeField(auto_now_add=True)
    date_last_modification = models.DateTimeField(auto_now=True) 

    def __unicode__(self):
        return self.deliveryrequest

    class Meta: # To order in the admin by name of the section
        ordering = ['biketype']  

我忘了明確地說這是一種前端形式。 我需要能夠為一個 “ DeliveryRequests” 插入 一個或多個 “ DeliveryRequestBikes”注冊

我應該使用哪一個,一個Formset或一個Inline Formset?

請給一些建議。

最好的祝福,

內聯表單集是模型表單集之上的一個小的抽象層。 這些簡化了通過外鍵使用相關對象的情況。

似乎內聯表單集正是您想要的。 您也可以選擇指定多少DeliveryRequestBikes要允許一個DeliveryRequests

試試看:

from django.forms.models import inlineformset_factory
DeliveryRequestBikesFormSet = inlineformset_factory(DeliveryRequests, DeliveryRequestBikes, fk_name="deliveryrequest")

暫無
暫無

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

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