Управление вводом формы Django - PullRequest
0 голосов
/ 19 января 2012

У меня есть модель видео, которая хранит «лайки» в виде множества полей с пользователем.

* 1003 например *

class Video(models.Model):
    ...
    likes = models.ManyToManyField(User)
    ....

Когда я создаю ModelForm на основе Video Likes, отображается раскрывающийся список со всеми пользователями. Это явно то, что я хочу. Я бы хотел, чтобы конкретный пользователь мог добавить / удалить свое имя из этого списка. Как мне вместо этого отображать «лайки» в качестве флажка и при этом правильно проверять форму?

Ответы [ 2 ]

3 голосов
/ 19 января 2012

В форме модели создайте настраиваемое поле для лайков;если это поле установлено, установите likes на request.user.

from django import forms

class VideoForm(forms.ModelForm):
    likes = forms.BooleanField(label='Mark as favorite?')
    class Meta:
        model = Video

. Это будет отображать лайки в качестве флажка (виджет по умолчанию для BooleanField ).

0 голосов
/ 19 января 2012

Я бы написал свой собственный виджет для этого поля (или заменил бы поле логическим полем): https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#overriding-the-default-field-types-or-widgets

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...