Я создаю Django своего рода блог. Мне нужно, чтобы сообщения блога были связаны в виде дерева лог c. скажем, если я создам первое сообщение в блоге, у него будет специальная пара "ключ-значение" "1001". когда я сделаю второй пост, связанный с первым, специальный ключ будет 10014522 (дополнительные 4 числа будут генерироваться случайным образом), если я сделаю третий связанный пост, ключ будет 100145235847, обратите внимание: 10014522 -> 10014523. если другой Пользователь создаст связанный пост, ключ будет 100145221254. Все это логи c не проблема. Проблема состоит в том, чтобы передать ключ для создания страницы создания и передать новый ключ в базу данных. Я думаю, что это можно сделать, если вы создаете форму с помощью def, но я использую class: в моем каталоге моделей:
Я думаю, что это можно сделать, если вы создаете форму с помощью def, но я ' m с помощью class: в моем каталоге моделей:
class Post (models.Model):
# The fields in the database
title = models.CharField(max_length=255)
title_tag = models.CharField(max_length=255)
author = models.ForeignKey(User, on_delete=models.CASCADE)
body = models.TextField()
chapter_date = models.DateField(auto_now_add=True)
special_key = .....?
в моем каталоге представлений:
# This code will create form in add_chapter.html
class AddChapterView(A,CreateView):
model = Post
form_class = PostForm
template_name = 'add_chapter.html'
в моем каталоге форм :
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ('title','author', 'body', 'key500')
widgets = {
'title': forms.TextInput(attrs={'class': 'form-control'}),
'author': forms.Select(attrs={'class': 'form-control'}),
'body': forms.Textarea(attrs={'class': 'form-control'}),
'key500': forms.Textarea(attrs={'class': 'form-control'})
в add_chapter. html
{% block content %}
{% include 'nav_bar.html' %}
{% if user.is_authenticated %}
<h1>Add Chapter </h1>
<div class="form-group">
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<button class="btn btn-secondary">Add Chapter</button>
</form>
</div>
{% else %}
You're not allowed here - <a href="{% url 'login' %}" class="btn btn-secondary">Login</a>
{% endif %}
<br/><br/>
<a href="{% url 'posts' %}" class="btn btn-secondary">Back</a>
{% endblock %}>
Снова для ясности. Мне нужно иметь «скрытое» поле, в которое будет помещен специальный ключ предварительного просмотра поста. И когда пользователь нажимает кнопку добавления сообщения, он добавляет 4 числа к специальной клавише. Я не знаю, как правильно общаться с базой данных.