Django связь с базой данных - получите специальный ключ и добавьте к нему символы - PullRequest
0 голосов
/ 09 мая 2020

Я создаю 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 числа к специальной клавише. Я не знаю, как правильно общаться с базой данных.

...