Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 29, 2020 16:45:09

W7NTED
Зарегистрирован: 2019-08-07
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите нарисовать форму

Здравствуйте, я зеленый джун, есть модель

 class Planet(models.Model):
    planet = models.CharField(max_length=25)
class Candidate(models.Model):
    name_c = models.CharField(max_length=25)
    planet = models.ForeignKey(Planet, on_delete=models.CASCADE)
    age = models.IntegerField(max_length=3)
    email = models.EmailField()
    status_padavan = models.BooleanField(default=False)
    created = models.DateTimeField(auto_now_add=True)
хочу нарисовать форму для заполнения, с выпадающим списком planet из модели, через forms.Form
наваял примерно следущее:
forms.py
 class CandidateForm(forms.Form):
    name = forms.CharField(label='Твое имя', max_length=25)
    planet = forms.ModelChoiceField(queryset=Planet.objects.all())
    age = forms.IntegerField(max_length=3, widget=forms.TextInput())
    email = forms.EmailField(max_length=25)
но для уменьшения кода, хочу через ModelForm, но не знаю как прикрутить (queryset=Planet.objects.all()) ибо нахожу такие примеры
class CandidateForm(ModelForm):
class Meta:
model = Candidate
fields=['name_c', 'planet', 'email', 'age']
Подскажите как правильно писать такой код. Спасибо

Отредактировано W7NTED (Янв. 29, 2020 16:46:43)

Офлайн

#2 Янв. 29, 2020 21:52:45

m0nte-cr1st0
Зарегистрирован: 2019-02-03
Сообщения: 49
Репутация: +  2  -
Профиль   Отправить e-mail  

Помогите нарисовать форму

 def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
    self.fields['planet'].queryset = Planet.objects.all()

Отредактировано m0nte-cr1st0 (Янв. 29, 2020 21:52:58)

Офлайн

#3 Янв. 29, 2020 22:46:46

W7NTED
Зарегистрирован: 2019-08-07
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите нарисовать форму

m0nte-cr1st0
Спасибо СЭНСЕЙ! Дай БОГ тебе здоровья!)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version