Задать вопрос
@Briariy

Создание foreingkey из модели?

Возникла проблема с формой, в django новичок так что сразу прошу прощения за глупый вопрос
Суть проблемы
Имеется 2 модели
class Task(models.Model):
    author = models.ForeignKey('User', on_delete=models.DO_NOTHING)
    data = models.DateTimeField(auto_now_add=True)
    description = models.CharField(max_length=500)
    comment = models.ForeignKey('TaskCommnet',on_delete=models.SET_NULL, blank=True, null=True)

class TaskComment(models.Model):
    comment_date = models.DateTimeField(verbose_name='Дата комменатария', auto_now_add=True)
    comment = models.CharField(verbose_name='Комментарий', max_length=300, blank=True, null=True)

Есть forms.pu
class TaskForm(forms.ModelForm):
    class Meta:
        model = Task
        fields = '__all__'
        widgets = {
             'author ':  forms.Select(attrs={'class':'md-input form-control'}),
             'description' :forms.Textarea(attrs={'class':'md-input form-control','rows':'4'}),
             'comment' :forms.Textarea(attrs={'class':'md-input form-control','rows':'4'})
        }

Есть Veiw
class TaskCreateView(CreateView):
    model = Task
    form_class = TaskForm
    template_name = "task-create.html"
    success_url = '/'

И шаблон
<form method="POST" action="">
{% csrf_token %}
{{from.author }} 
{{from.description }} 
{{from.comment }} 
</form>

Собственно вопрос как сделать возможность добавления комментария к задаче
Я понимаю что вывод {{from.comment }} не правильный, т.к по сути это select
  • Вопрос задан
  • 90 просмотров
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Arselon
программист на пенсии
Непонятно, зачем иметь отдельную таблицу для комментариев, т.к. у Вас для одной задачи будет один уникальный комментарий. Я бы сделал так:

class Task(models.Model):
author = models.ForeignKey('User', on_delete=models.DO_NOTHING)
data = models.DateTimeField(auto_now_add=True)
description = models.CharField(max_length=500)
comment_date = models.DateTimeField(verbose_name='Дата комментария', blank=True, null=True)
comment = models.CharField(verbose_name='Комментарий', max_length=300, blank=True, null=True)

{% extends "app/layout.html" %}
{% block content %}
form action="" method="post">
{% csrf_token %}
table>
{{ form.as_table }}
/table>
input type="submit" value="Отправить" />
/form>
{% endblock %}>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы