Как отобразить поле пользователя в форме только для сотрудников в Джанго - PullRequest
2 голосов
/ 08 февраля 2011

Я хочу, чтобы сотрудники, просматривающие определенную форму на моем сайте, могли изменить поле Author, но если is_staff равно false, следует предположить, что значение должно быть текущим User.

Так, например, у меня есть ArticleForm, например:

class ArticleForm(ModelForm):

    class Meta:
        model = Article
        fields = ('user', 'title', 'text') 

Как я могу динамически настроить отображение поля user в зависимости от состояния User?

Если бы мне пришлось использовать пользовательскую функцию __init__ с параметром user, как мне тогда изменить, отображается ли это поле или нет?

1 Ответ

3 голосов
/ 08 февраля 2011
class ArticleForm(ModelForm):

    class Meta:
        model = Article
        fields = ('user', 'title', 'text') 

    def __init__(self, *args, **kwargs):
        user = kwargs.pop('user', None)
        super(ArticleForm, self).__init__(*args, **kwargs)
        if not user.is_superuser:
            del self.fields['user']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...