Django: ForeignKey to_field и db_column не работают - PullRequest
0 голосов
/ 08 февраля 2011

Я пытаюсь получить значение поля для виджета select, используя to_field или db_column аргументы, но, похоже, они не работают.

Вот модель:


class Employer(models.Model):
    e_name     = models.CharField(
                                  max_length = 40, 
                                  verbose_name = 'Name')

    e_lastname = models.CharField(
                                  max_length = 40, 
                                  verbose_name = 'Lastname')

    e_position = models.ForeignKey(
                                   to = Position,  
                                   db_field = 'p_name', # this is the thing I want to display as a select widget option
                                   verbose_name = 'Position')

Вместо этого у меня есть только названия моделей в виджете выбора, а также db_column ссылаются на модель Employer, но ссылаются на Position.

Что идет не так или новоеособенности, о которых я не знаю?

Султан

1 Ответ

1 голос
/ 08 февраля 2011

Если все, что вам нужно, - все доступно Позиция на выбор в html-виджете выбора, вы можете получить такие как:

p_names = (p.name for p in Position.objects.all())

Но как вы генерируете HTML? Если вы используете формы. Форму можно использовать

POS_CHOICES = [(p.id, p.name) for p in Position.objects.all()]
class EmployerForm(forms.Form):
    p_choices = forms.CharField(widget=forms.Select(choices=POS_CHOICES))

и отрендерить его в html-шаблоне:

{{form.p_choices}}

Посмотрите на формы и моделей .

Edit: Я только что увидел тег django-admin. Я не знаю, как это сделать в админке, извините.

...