Как я могу использовать Django форму раскрывающегося списка в моем шаблоне? - PullRequest
0 голосов
/ 08 октября 2019

Я создал форму, в которой есть поля с раскрывающимся списком, одно для стран и другое для национальности, но я не знаю, как передать его в мой HTML-шаблон. Как я могу решить эту проблему? я написал свои модели и передал их в свой form.py и использовал в своем шаблоне

Models.py

class User(models.Model):
    first_name = models.CharField(max_length=100)
    second_name = models.CharField(max_length=100)
    E_mail = models.EmailField(max_length=254)
    COUNTRY_CHOICES = [('saudi arabia +966','SAUDI ARABIA +966'),
                       ('oman +968','OMAN +968'),
                       ('kuwait +965','KWUAIT +965'),
                       ('Qatar +948','QATAR +948')]
    country = models.CharField(max_length=250, choices=COUNTRY_CHOICES, null=True)
    phone = models.IntegerField(null=True)
    phone_code = models.IntegerField(null=True)
    birthday = models.DateField(null=True, blank=True)
    NATIONALITY_CHOICES = [('خليجي','خليجي'),
                           ('ليس خليجي','ليس خليجي')]
    nationality = models.CharField(max_length=250, choices=NATIONALITY_CHOICES, null=True)

    def __str__(self):
        return self.first_name

forms.py

    from django import forms
    from .models import User

    class UserForm(forms.ModelForm):
        class Meta:
            model = User
            fields = ('first_name', 'second_name', 'E_mail', 'country', 'phone', 'phone_code','birthday', 'nationality',)

form_page. html

    <form action="{% url 'LandingPage:form_page' %}" method="POST" class="ui inverted form container">
        {% csrf_token %}

        <div class="field">
            <label>البريد الألكتروني</label>
            <input type="text" name="last-name" placeholder="joe@schmoe.com" {{form.E_mail}}>
        </div>
        <div class="ui field">
            <label>أختر الدولة</label>
            <select name="gender" class="ui dropdown" id="select" {{form.country}}>
                <option value="">أختر الدولة</option>
                <option value="Saudi">Saudi Arabia +966</option>
                <option value="Qatar">Qatar +974</option>
                <option value="Oman">Oman +968</option>
                <option value="Kuwait">Kuwait +965</option>
                <option value="Bahrain">Bahrain +973</option>

            </select>
        </div>

        <!-- Mobile Number -->
        <div class="ui field">
            <label>رقم الهاتف</label>

            <div class="inline fields">
                <div class="eight wide field">
                    <input type="text" placeholder="(xxx)" {{form.phone}}>
                </div>

                <div class="three wide field" {{form.phone_code}}>
                    <input type="text" placeholder="الكود">
                </div>
            </div>
        </div>

        <!-- Nationalety -->
        <div class="ui field">
            <label>الجنسية</label>
            <select name="gender" class="ui dropdown" id="select" {{form.nationality}}>
                <option value="">الجنسية</option>
                <option value="خليجي">خليجي</option>
                <option value="ليس خليجي">ليس خليجي</option>
            </select>
        </div>
        <button class="ui fluid positive button" type="submit">Submit</button>
    </form>

1 Ответ

1 голос
/ 08 октября 2019

Попробуйте:

    <form action="{% url 'LandingPage:form_page' %}" method="POST" class="ui inverted form container">
        {% csrf_token %}

        <div class="field">
            <label>البريد الألكتروني</label>
            {{form.E_mail}}
        </div>
        <div class="ui field">
            <label>أختر الدولة</label>
            {{form.country}}
        </div>

        <!-- Mobile Number -->
        <div class="ui field">
            <label>رقم الهاتف</label>

            <div class="inline fields">
                <div class="eight wide field">
                    {{form.phone}}
                </div>

                <div class="three wide field">
                    {{form.phone_code}}
                </div>
            </div>
        </div>

        <!-- Nationalety -->
        <div class="ui field">
            <label>الجنسية</label>
            {{form.nationality}}
        </div>
        <button class="ui fluid positive button" type="submit">Submit</button>
    </form>

Шаблон Django отобразит его для вас на основе поля формы. Что касается заполнителя или любого другого атрибута html, вы можете установить его в пользовательской форме, чтобы он отображался в шаблоне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...