Администратор Django: Могу ли я создать поле, которое можно использовать только в том случае, если в предыдущем поле в той же модели был выбран определенный вариант? - PullRequest
0 голосов
/ 22 апреля 2011

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

Моя модель выглядит так:

GENDER_CHOICES = (
    ('f', 'Female'),
    ('m', 'Male'),
)

class Animal(models.Model):
    name = models.CharField(max_length=255)
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
    is_castrated = models.BooleanField()

    def __unicode__(self):
        return self.name

Могу ли я ограничить доступ, в частности, для администратора, к полю is_castrated, чтобы он был доступен только тогда, когда пользователь выбрал Male из поля пола?

1 Ответ

5 голосов
/ 22 апреля 2011

Похоже, вам понадобится JavaScript. Вы можете сделать это, добавив немного в ваш файл admin.py. Проверьте это:

Описание модели MediaAdmin - Есть моменты, когда вы хотели бы добавить немного CSS и / или JavaScript в Добавить / изменить представления. Это может быть достигается с помощью внутреннего медиа класс на вашем ModelAdmin:

class ArticleAdmin(admin.ModelAdmin):
    class Media:
        css = {
             "all": ("my_styles.css",)
         }
        js = ("my_code.js",)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...