Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2020, 15:22   #1
fgdfgdf
 
Регистрация: 31.08.2019
Сообщений: 4
По умолчанию Как сделать так, чтобы пользователь при создании статьи выбрал её тип из предложенных вариантов?

Как на странице сделать так, чтобы пользователь при создании статьи выбрал её тип из предложенных вариантов 1 или 2 с помощью html тега select. Для этого нужно файле forms с помощью ChoiceField указать, чтобы строка type выводилась в html не в теге input, а в теге select с 2 тегами option первый option это 1 второй 2. Как это правильно сделать?
это models
Код:
from django.db import models
from django.contrib.auth.models import User
class Articles(models.Model):
    author=models.ForeignKey(User,on_delete=models.CASCADE,verbose_name='Автор')
    create_date=models.DateTimeField(auto_now=True)
    name=models.CharField("Название статьи",max_length=200)
    text=models.TextField(verbose_name="Текст")
    type=models.CharField("тема",max_length=100)
это views
Код:
from django.shortcuts import render,redirect
from .models import *
from django.views.generic import CreateView,UpdateView,DeleteView
from django.contrib.auth.mixins import LoginRequiredMixin
from .forms import *
from django.urls import reverse,reverse_lazy
class ArticleCreateView(LoginRequiredMixin,CreateView):
    login_url=reverse_lazy('login_page')
    model = Articles
    template_name = 'edit_page.html'
    form_class = ArticleForm
    success_url = reverse_lazy('edit_page')
    def get_context_data(self,**kwargs):
        kwargs['list_articles'] = Articles.objects.all()
        return super().get_context_data(**kwargs)
    def form_valid(self,form):
        self.object=form.save(commit=False)
        self.object.author=self.request.user
        self.object.save()
        return super().form_valid(form)
edit_page.html
Код:
<form method="post" id="add_form">
       {% csrf_token %}
       {{form}}
      </form>
<button type="submit" form="add_form" class="btn btn-primary">Создать</button>
это forms.py
Код:
from django import forms
from .models import *
GEEKS_CHOICES =( 
    ("1", "One"), 
    ("2", "Two"),  
) 
class ArticleForm(forms.ModelForm):
    class Meta:
        model=Articles
        type= forms.ChoiceField(choices = GEEKS_CHOICES)
        fields=('type','name','text')
    def __init__(self,*args,**kwargs):
        super().__init__(*args,**kwargs)
это urls.py
Код:
from django.contrib import admin
from django.urls import path
from core import views
urlpatterns = [
 path('edit-page', views.ArticleCreateView.as_view(), name='edit_page'),
]
fgdfgdf вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать чтобы пользователь мог ввести определенные символы? Никита Питоновский Python 1 14.12.2019 18:03
Помогите разобраться - как сделать чтобы заливать статьи и изображениями видео и тд можно было через сайт killerhawk Общие вопросы Web 5 23.08.2019 08:05
Как в тесте учесть вариант, если пользователь не выбрал ни одного ответа? nika_dreamy Общие вопросы Delphi 2 12.03.2017 15:37
Как сделать чтобы при создании формы происходило 2 события? artbotva Общие вопросы Delphi 7 06.05.2012 18:27
vBulletin сделать, чтобы при регистрации пользователь сразу же становился зарегистрированным dron-s PHP 26 20.11.2007 16:58