попытался подключить ModelForm - PullRequest
1 голос
/ 31 мая 2019

Я получаю «ошибку значения» из-за того, что «ModelForm не указан класс модели».

Я попытался проверить: models.py forms.py и views.py, но все выглядит довольно хорошо дляя

views.py:

class CreatePostView(LoginRequiredMixin,CreateView):
   login_url='/login/'
   redirect_field_name='Myblog/post_detail.html'
   form_class = PostForm
   model = Post

models.py:

class Post(models.Model):
   author = models.ForeignKey('auth.User',on_delete=models.CASCADE)
   title = models.CharField(max_length=200)
   text = models.TextField()
   created_date = models.DateTimeField(default=timezone.now)
   published_date = models.DateTimeField(blank=True,null=True)

forms.py:

class PostForm(ModelForm):
   class meta:
       model = Post
       fields = ('author','title','text')

из app.urls.py url (r '^ post / new / $', views.CreatePostView.as_view (), name = 'post_new'),

1 Ответ

1 голос
/ 31 мая 2019

<b>M</b>eta с заглавными буквами , в соответствии с PEP-8 имена классов начинаются с заглавной буквы.В вашей форме вы должны написать:

# app/forms.py

class PostForm(ModelForm):

    class <b>Meta</b>:
        model = Post
        fields = ('author','title','text')

Поскольку вы написали это как <s>meta</s>, Джанго действительно не понимал, что model вы использовали.

Если вы этого не сделаетенаписать форму с конкретными предметами, вы можете - как @ DanielRoseman говорит, просто определить это в CreateView [Django-doc] :

class CreatePostView(LoginRequiredMixin,CreateView):
    login_url='/login/'
    redirect_field_name='Myblog/post_detail.html'
    model = Post
    <b>fields = ('author', 'title', 'text')</b>

Django может создать класс формы через modelform_factory [Django-doc] .

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