Model Formats and Date Fields

I have a model set of models on a model with a couple of date fields, which again is a DateTimeField in the model. But when it is displayed in the template, it is displayed as a text field. How can I show it as a drop down list?

WFormSet = inlineformset_factory(UserProfile, W, can_delete=False,exclude=[<list of fields to be excluded>], extra=3) 

This is how I do the intializing modelformset.

How to override these options

+3
source share
1 answer

The usual way to do this is to override the default field types in the ModelForm definition.

, DateField ( , DateTimeField... ). , , .

from django.db import models
from django import forms
from django.forms.extras import SelectDateWidget

class MyModel(models.Model):
    a_date_field = models.DateField()

class MyModelForm(forms.ModelForm):
    a_date_field = forms.DateField(widget=SelectDateWidget())

    class Meta:
        model = MyModel

, DateTimeField Django 1.0.x . , , SelectDateWidget. google SelectDateTimeWidget, , , , , , . , emptor, - SelectDateTimeWidget .


: ModelFormset InlineModelFormset , form=MyModelForm inlineformet_factory:

MyModelFormset = inlineformset_factory(MyParentModel, MyModel, form=MyModelForm)

, - formset_factory . , ... , Django , , formet_factory. , , django/forms/models.py, formet factory.

+6

Source: https://habr.com/ru/post/1708581/


All Articles