Python Django:以空QueryDict作为初始数据的多对多字段验证失败

Python Django:以空QueryDict作为初始数据的多对多字段验证失败,python,django,Python,Django,设置: Python3.5.1和Django 1.9 我有一个基于类的通用视图CreateRentView在模型Rent上运行。我实施了一个定制的ModelFormRentForm来实施额外的验证(例如,确保start\u time),我相信这是您租赁对象的选择 如果您在选择中使用整数,则应使用IntegerField。对于CharField,请使用字符串。我相信这是您租用对象的选择 如果在选择中使用整数,则应使用IntegerField。对于CharField,使用字符串将对象建模为mode

设置:

  • Python3.5.1和Django 1.9

  • 我有一个基于类的通用视图
    CreateRentView
    在模型
    Rent
    上运行。我实施了一个定制的
    ModelForm
    RentForm
    来实施额外的验证(例如,确保
    start\u time),我相信这是您租赁对象的选择


    如果您在选择中使用整数,则应使用IntegerField。对于CharField,请使用字符串。我相信这是您租用对象的选择


    如果在选择中使用整数,则应使用IntegerField。对于CharField,使用字符串将对象建模为model
    Rent
    中的多对多字段:class Rent(models.model):Rent\u objects=models.ManyToManyField(RentalObject,…),如果我不重写
    RentCreateView
    的“get\u form()呈现以下HTML代码的方法:MB1 CB1…在AJAX请求后呈现相同的结果。如果仍然不起作用,您可以尝试不使用AJAX的表单并共享您的模型吗?表单可以不使用AJAX工作,但也可以使用AJAX(如果
    get_form()
    不被覆盖;即,为模型
    RentalObject
    )提供默认的
    QuerySet
    。可以在上找到模型。
    rental\u对象的建模与模型
    Rent
    中的多对多字段的建模相同:类租金(models.model):rental\u对象=模型。ManyToManyField(RentalObject,…)如果我不重写
    RentCreateView
    的`get_form()方法,则呈现以下HTML代码:MB1 CB1…在AJAX请求后呈现相同的内容。您是否可以尝试不使用AJAX的表单,并在仍然不起作用的情况下共享您的模型?表单可以不使用AJAX,但也可以使用AJAX(如果
    get_form()
    不被覆盖;即,为模型
    RentalObject
    )提供默认的
    QuerySet
    。可以在上找到模型。
    def get_form(self):
        form = super(generic.CreateView, self).get_form()
        # Rental objects are retrieved via AJAX after start and end time is defined.
        form.fields["rental_objects"].queryset = RentalObject.objects.none()