Django форма добавления / редактирования не возвращает начальное значение / значение по умолчанию, установленное во время инициализации - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть вид, который я использую как для добавления, так и для редактирования модели.Форма редактирования работает нормально, но при загрузке формы добавления начальные значения, которые я установил с помощью кода Python, не отображаются.

Views.py (1):

def tracker_edit(request, track_id=None, template_name='posts/tracker_edit.html'):
    if track_id is not None:
        track = get_object_or_404(Post, pk=track_id)
    else:
        track = Post()
    tracker = CreateArticle(request.POST or None, instance=track)
    if request.POST and tracker.is_valid():
        tracker.save()
        redirect_url = reverse('posts:tracker_list')
        return redirect(redirect_url)

    return render(request, template_name, {
        'tracker': tracker
    })

Forms.py:

    Day_Of_Week=(('Weekday','Weekday'),('Weekend','Weekend'))
    weekno = datetime.datetime.today().weekday()

    if weekno<5:
        x = ("Weekday")
    else:
        x = ("Weekend")

    Day_Of_Week = forms.ChoiceField(choices=Day_Of_Week, widget=forms.RadioSelect, initial=x)

Например, из файла forms.py вы можете видеть, что я ожидаю автоматического выбора радиокнопки в качестве дня недели или выходного дня.Но ни один не выбран.Я смущен, я делаю что-то не так с get / put?Любое исправление для вышеупомянутого будет оценено.

1 Ответ

0 голосов
/ 24 апреля 2019

Я пришел к этому, добавив код python для получения начальных значений в models.py вместо forms.py.

models.py

weekno = datetime.datetime.today().weekday()
    if weekno < 5:
        x = ("Weekday")
    else:
        x = ("Weekend")
    Day_Of_Week = models.TextField(null=False, db_column='dayofweek', default=x)
...