Django форма в форме

Интересно, можно ли сделать форму в форме с помощью django? Например:

class Category(models.Model):
    title = models.CharField(max_length=200)
    icon = models.ImageField(upload_to="icons", default="icons/dot.png")

    def __str__(self):
        return self.title

    def get_posts(self):
        return Post.objects.filter(category__title=self.title)

class Post(models.Model):
    author = models.ForeignKey(Account, on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    description = models.CharField(max_length=400)
    date_posted = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

Пока я работал с формами на основе этих моделей, я разделил CategoryForm и PostForm на две формы (категория должна была быть создана до поста, чтобы пользователь мог выбрать новую категорию во время создания нового поста), а затем на два представления.


class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        exclude = ('author',)


class CategoryForm(forms.ModelForm):
    class Meta:
        model = Catergory
        fields = '__all__'
def newPostView(request):   
    if request.method == 'POST':
        form = PostForm(request.POST)
        if form.is_valid():
            obj = form.save(commit=False)
            obj.author = request.user
            obj.save()
            return redirect('home')
    form = PostForm()
    context = {'form':form}
    return render(request, 'blog/post_form.html', context)

def newCategoryView(request) 
...
...
...

Я хотел бы сделать одну форму newPost, в которой будет реализована форма Category - то есть я хотел бы, чтобы можно было выбрать категорию из уже созданных категорий или создать новую, если это необходимо, без использования другого представления

Как я могу его сделать?

Вернуться на верх