Django - Данные не публикуются в БД
В настоящее время я работаю над системой заметок/комментариев. Она предназначена для работы в качестве добавления заметок к каждому отдельному проекту. Например, вы создаете "Проект", и есть раздел заметок или комментариев, предназначенный для добавления обновлений к проекту. Вот мой view.py для обновления проекта. Верхняя часть предназначена для обновления самого проекта, нижняя - для добавления примечаний.
@login_required(login_url="/login")
def update_project(request, pk):
queryset = DevProjects.objects.get(id=pk)
form = UpdateProject(instance=queryset)
if request.method == 'POST':
form = UpdateProject(request.POST, instance=queryset)
if form.is_valid():
form.save()
return redirect('/')
project = get_object_or_404(DevProjects, id=pk)
notes = project.notes.filter(id=pk)
new_note = None
if request.method == 'POST':
notes_form = AddProjectNotes(request.POST, instance=project)
if notes_form.is_valid():
new_note = notes_form.save(commit=False)
new_note.project = project
new_note.save()
else:
notes_form = AddProjectNotes()
return render(request, 'projects/updateprojects.html', {"form": form, "queryset": queryset, 'project': project, 'notes': notes, 'new_note': new_note, 'notes_form': notes_form})
Когда я пытаюсь отправить заметки, он показывает, что они успешно отправлены в БД, но в БД нет никаких записей. Вот мой шаблон.
<div class="container">
{% if new_note %}
<h2>Your comment has been added.</h2>
{% else %}
<h2>Add a new comment</h2>
<form action="." method="post">
{{ notes_form.notes|as_crispy_field }}
{% csrf_token %}
<p><input type="submit" value="Add comment"></p>
</form>
{% endif %}
</div>
<div class="container">
{% for note in notes %}
<div class="notes">
<p class="info">
Comment {{ forloop.counter }} by {{ note.notes }}
{{ note.created_at }}
</p>
</div>
{% empty %}
<p>There are no notes yet.</p>
{% endfor %}
</div>
Предполагается, что он будет работать как система комментирования, поэтому я делаю посты, относящиеся к каждому конкретному проекту. Вот мои модели:
class DevProjects(models.Model):
project_title = models.CharField(max_length=100)
project_desc = models.CharField(max_length=500)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateField(auto_now=True)
created_by = models.ForeignKey(User, on_delete=models.CASCADE)
class DevProjectNotes(models.Model):
project = models.ForeignKey(DevProjects, on_delete=models.CASCADE, related_name='notes')
notes = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
added_by = models.ForeignKey(User, on_delete=models.CASCADE)
Что я делаю не так, чтобы данные не попадали в базу данных? Мне нужно, чтобы они были связаны с проектом, так как предполагается добавление заметок, связанных с проектом. Любая помощь будет высоко оценена.