Django的。如何设置默认选项使用通用CreateView

Dom*_*nik 3 django django-templates django-models django-forms django-views

模型:

class MyModel(model.Models)
   status = models.ForeignKey(Statuses, on_delete=models.PROTECT, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

观看次数:

class MyViewCreate(CreateView):
    model = MyModel
    form_class = MyFrom
    template_name = 'mymodel_form.html'
Run Code Online (Sandbox Code Playgroud)

形式:

class MyForm(ModelForm):

    class Meta:
        model = MyModel
        fields = '__all__'
Run Code Online (Sandbox Code Playgroud)

我如何在表单中设置选项列表上的默认值或第一个值>

Jah*_*nov 6

您可以这样使用initial

class MyViewCreate(CreateView):
    model = MyModel
    form_class = MyFrom
    initial = {'status': '0'}
    template_name = 'mymodel_form.html'
Run Code Online (Sandbox Code Playgroud)

或像这样:

class MyViewCreate(CreateView):
    model = MyModel
    form_class = MyFrom
    template_name = 'mymodel_form.html'

    def get_initial(self):
        state = get_object_or_404(MyModel, some_field=some_value)
        return {
            'state':state,
        }
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!