Django cbv, как реализовать несколько моделей в одной форме?
Доброго времени суток! пытаюсь учить джангу, вроде как сейчас модно и продуктивно работать с CBV. Но почему это такая боль??почему от них больше мороки чем пользы? да, возможно, сейчас у меня пока все просто, и я не вижу всех преимуществ с наследованием и тп, но сколько оно ж оно убивает времени( Полночи пытался реализовать создание нескольких связанных моделей сразу одной формой, пока не плюнул на все и за 3 минуты сделал функцией, и уже не в первый раз такая фигня. Подскажите, как постичь эти классы, и надо ли оно вообще.. может есть какие-то ресурсы по их изучению, может какие-то обзоры функционала? функционала они вроде в себе много несут, но по сухим выжимкам из документации реальную вещь сделать чет сложновато, в функциях все понятно, никаких скрытых наследственных связей, что надо, то и пишешь, и получаешь предсказуемый результат, а тут.. и конкретно по этому вопросу, как все-таки реализуется форма из 2ух связанных моделей с CBV?
class Theme(models.Model):
theme_title = models.CharField('Заголовок', max_length=50, unique=True)
class Topic(models.Model):
topic_text = models.TextField('Сообщение')
theme_topic = models.ForeignKey(Theme, related_name='theme_topic')
Вот примерно так, мне нужно дать возможность пользователю создавать темы на форуме. При создании темы пишется ее заголовок и первое сообщение, ну как везде.
Нужно это все вывести в хтмл 2 формы с одной кнопкой "создать тему"
class ThemeForm(forms.ModelForm):
class Meta:
model = Theme
fields = ['theme_title']
class TopicForm(forms.ModelForm):
topic_text = forms.CharField(widget=forms.Textarea(), label='')
class Meta:
model = Topic
fields = ['topic_text']
Зачем ругать то, что не можешь с наскоку понять? CBV очень хорошая и нужная вещь. Если не уметь и не понимать, то и вилка с ложкой очень не удобные вещи, проще руками суп черпать из тарелки!
https://ccbv.co.uk
Этот сайт должен быть открыт на отдельной вкладке рядом с доками
На ютубе полно видео про cbv со всяких Джанго конов.
Ну и модели у тебя странные какие-то
Syschel: видна ли рольза в небольших проектах, когда начинает чувствоваться отличие от функций? у меня что так, что эдак одинаково примерно получается, кое-что можно оптимизировать за счет cbv, но чтот не стоит оно того
Ayaks77: пока нет понимания ООП, то оно кажется что не нужно. Но когда понимание есть, тогда и CBV прекрасная вещь. В любых проектах.
Я когда ленился постичь "дзен" ООП, сидел несколько лет на функциях. Сейчас без ООП никуда, в любых проектах.
Syschel: я не спорю что ооп это здорово, меня напрягает уже готовый скрытый функционал существующих классов, поэтому я и спросил, так ли велика польза от ооп конкретно в джанге, или можно без этого обходиться
Ayaks77: Если не умешеь и не знаешь, естественно лучше делать тем и на том, что знаешь и умеешь.
Я сам делал долгое время функциями, так как ленился почитать про CBV, но потом функции перестал использовать на 99%. По сути очень редкие случаи, очень при очень, когда мне приходится использовать функцию для вывода в вью.