Как загрузить форму комментариев в представлении объектов блога?Или эти вещи как-то могут быть загружены независимо? - PullRequest
0 голосов
/ 16 декабря 2018

Итак, я нахожусь в процессе создания специального приложения для комментариев для Django == 2.1 И я хотел бы знать, как загрузить как существующую запись в блоге, так и форму комментария, в которой ContentType будет храниться как блог вместо одного.из других моделей, с которыми это может быть связано.

Порядок разрешения методов требует, чтобы крайний левый просмотр или миксин были первыми, в которых выполняется поиск отсутствующих методов, не объявленных в этом соответствующем представлении, или тех представлений, которые вызывают метод super().get() (пример формы),Поэтому я пришел к выводу, что приложение View for Blog должно иметь следующий код.

blog/views.py
class BLogTechObjectView(SingleObjectMixin, TemplateResponseMixin, BlogTechView):
    model = Blog
    slug_url_kwarg = 'blogtitle'
    template_name = 'extendsBlog.html'
    context_object_name = 'blog'
    slug_field = 'blog_name'

    def get(self, request, *args, **kwargs):
        blog = self.get_object()
        return render(request, 'extendsBlog.html', {'blog':blog})

comments/models.py
class Comment(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
    object_id = models.PositiveIntegerField()
    content_object = GenericForeignKey('content_type', 'object_id')
    timestamp = models.DateTimeField(auto_now_add=True)
    content = models.TextField()

    def __str__(self):
        return '{} made this comment on : {} '.format(self.user, self.timestamp)

    def __unicode__(self):
        return '{} made this comment on : {} '.format(self.user, self.timestamp)

comments/views.py
class CommentFormView(generic.CreateView):
    form_class = CommentForm
    success_url = None
    template_name = 'comments.html'

    def post(self):

comments/forms.py
class CommentForm(forms.Form):

    content_type = forms.CharField(widget=forms.HiddenInput)
    object_id = forms.IntegerField(widget=forms.HiddenInput)
    content = forms.CharField(widget=forms.Textarea)

Файл blog / views.py сокращен для краткости.Вот весь файл.http://dpaste.com/2Y4D355

Вот логика.Я подумал, что, пока я могу загружать данные формы в блоге / views.py, я могу затем публиковать данные формы в соответствующий файл comment / urls.py, где будет загружено представление и форма будет сохранена.Но я еще не закончил файл comment / views.py, потому что хотел узнать от разработчиков, правильно ли использовать логический подход.Пожалуйста, также прокомментируйте некоторую справочную информацию вместе с вашими ответами, поскольку она очень поможет мне и тем, кто использует представления на основе классов вместо представлений на основе функций, и поможет исправить дальнейшие логические ошибки (если применимо) в будущем.Спасибо.И, пожалуйста, прокомментируйте, если этот вопрос необходимо обновить.

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