У меня есть приложение-форум, его структура: «форум -> подфорум -> тема -> комментарии». Темы индивидуальны для каждого подфорума и недоступны из другого подфорума; то же самое для тем и их комментариев.
Из-за плохой организации структуры данных с моей стороны нумерация идентификаторов комментариев повторяется как общая для всех тем, поэтому идентификатор первого комментария первой созданной темы — 1, а идентификатор первого комментария последней созданной темы может быть, я не знаю, 45.
Мне нужно обращаться к комментариям внутри тем через их id (или какой-то другой тип нумерации), а для этого нужна какая-то очевидная система нумерации комментариев внутри тем. Хотя я не знаю, как это реализовать и возможно ли это вообще.
Поэтому прошу помощи сообщества.
Файлы:
forum/urls.py:
from django import forms
from django.core.exceptions import ValidationError
from forum import models
class AddTopicForm(forms.ModelForm):
subject = forms.CharField(label="Заголовок", max_length=100, min_length=7)
first_comment = forms.CharField(label="Сообщение", widget=forms.Textarea())
class Meta:
model = models.Topic
fields = ['subject', 'first_comment']
def clean_subject(self):
subject = self.cleaned_data['subject']
if len(subject) > 100:
raise ValidationError("Length is longer than 100 symbols")
if len(subject) < 7:
raise ValidationError("Too short, no less than 7 symbols")
return subject
class AddCommentForm(forms.ModelForm):
content = forms.CharField(label="Comment's text", max_length=2000, min_length=1, widget=forms.Textarea())
class Meta:
model = models.Comment
fields = ['content']
Если потребуется какая-либо дополнительная информация, готов ее предоставить.
У меня есть приложение-форум, его структура: «форум -> подфорум -> тема -> комментарии». Темы индивидуальны для каждого подфорума и недоступны из другого подфорума; то же самое для тем и их комментариев. Из-за плохой организации структуры данных с моей стороны нумерация идентификаторов комментариев повторяется как общая для всех тем, поэтому идентификатор первого комментария первой созданной темы — 1, а идентификатор первого комментария последней созданной темы может быть, я не знаю, 45. Мне нужно обращаться к комментариям внутри тем через их id (или какой-то другой тип нумерации), а для этого нужна какая-то очевидная система нумерации комментариев внутри тем. Хотя я не знаю, как это реализовать и возможно ли это вообще. Поэтому прошу помощи сообщества. Файлы: forum/urls.py: [code]from django.urls import path
from forum.views import *
app_name = 'forum'
urlpatterns = [ path('', SubForumListView.as_view(), name='forum'), path('/', TopicListView.as_view(), name='subforum'), path('/add_topic/', AddTopic.as_view(), name="add_topic"), path('/topics//', ShowTopic.as_view(), name='topic'), path('/topics//add_comment/', AddComment.as_view(), name="add_comment"), path('/topics//edit//', UpdateComment.as_view(), name="edit_comment"), ] [/code] models.py: [code]from django.db import models from django.contrib.auth.models import User from django.urls import reverse from django.utils.text import slugify
from .consts import *
class Subforum(models.Model): title = models.CharField(verbose_name='Название', max_length=32, choices=Theme.THEME_CHOICES, default=1) slug = models.SlugField(default='News') objects = models.Manager()
def __str__(self): return f'Post of {self.topic.subject} is posted by {self.author.username}.' [/code] views.py: [code]from django.contrib.auth.mixins import LoginRequiredMixin from django.shortcuts import get_object_or_404 from django.urls import reverse_lazy, reverse from django.views.generic import ListView, DetailView, CreateView, UpdateView, DeleteView from django_filters.views import FilterView
from core.views import menu from .filters import TopicFilter from .forms import AddTopicForm, AddCommentForm from .models import Subforum, Topic, Comment, Profile from .utils import DataMixin
class SubForumListView(ListView): model = Subforum context_object_name = 'subforum_list' template_name = "forum/forum.html"
class Meta: model = models.Topic fields = ['subject', 'first_comment']
def clean_subject(self): subject = self.cleaned_data['subject'] if len(subject) > 100: raise ValidationError("Length is longer than 100 symbols") if len(subject) < 7: raise ValidationError("Too short, no less than 7 symbols") return subject
class AddCommentForm(forms.ModelForm): content = forms.CharField(label="Comment's text", max_length=2000, min_length=1, widget=forms.Textarea())
class Meta: model = models.Comment fields = ['content'] [/code] Если потребуется какая-либо дополнительная информация, готов ее предоставить.
Я пытаюсь реализовать сопоставление отношений один к одному в Hibernate, и я новичок в технологии Hibernate.
Мои два класса сущностей — это сотрудники и Клиент. Клиент должен иметь столбец идентификатора сотрудника в качестве внешнего ключа в...
Я хочу удовлетворить эту связь в базе данных Django SQLite (ER-диаграмма). Я пробовал использовать решения unique_together и models.UniqueConstraint, которые я видел.
myapp/models.py
class User(models.Model):
user_id =...
У меня есть таблица MYSQL, которая имеет два внешних ключа к другим строкам той же таблицы. (для простоты я изменил ее на таблицу человек, это не то, чего я пытаюсь достичь, а аналогичная структура).
CREATE TABLE `person` ( `id` int PRIMARY KEY,...
I'm building a software project (PHP & Laravel) that uses an ORM to generate SQL. I'm hitting an SQL Server (2019) parameter limit of 2100 (using where in) but only when using string IDs and not when using integer IDs. Why would this be the case? I...
Я работаю в отрасли, которая еще не идет в ногу со временем и настаивает на совместном использовании очень больших (и важных и ценных) наборов данных на внешних потребительских USB-накопителях.
У нас есть установка, в которой мы получаем эти диски,...