Создание вариантов со страницы администратора - PullRequest
1 голос
/ 23 декабря 2019

Я пытаюсь создать систему управления школой с помощью django. Я хочу добавить поле 'staff_type' в модель 'staff'. На переднем конце, который будет выбран из выпадающего меню. Но я не хочу жестко кодировать выбор. Я хочу добавить варианты со страницы администратора. Как я могу сделать это с Django?

from django.db import models

#this is over-simlified.

class person(models.model):
    name = models.Charfield(max_length =100)
class staff(person):
    staff_type = models.Charfield(max_length =20)

Ответы [ 2 ]

0 голосов
/ 23 декабря 2019

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

class StaffType(person):
    name = models.Charfield(max_length=20)

    def __str__(self):
        return self.name


class Staff(person):
    staff_type = models.ForeignKey(StaffType, on_delete=models.PROTECT)

Теперь, когда вы добавляете StaffTypeв админке это будет доступный выбор при добавлении / редактировании Staff экземпляра

0 голосов
/ 23 декабря 2019

Вы можете использовать перечисления:

class staff(person):
    types = (
        (1, "item1"),
        (2, "item2"),
        (3, "item3"),
       )
    staff_type = models.Charfield(max_length =20, choices=types)

или вы можете создать модель ea и использовать ее в выборках, см. Ниже:

class TypeList(models.Model):
    type=models.CharField(max_length=15)

class SampleModel(models.Model):
    TypeList=TypeList.objects.all()
    staff_type=models.ForeignKey(TypeList,on_delete=models.CASCADE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...