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 - то есть я хотел бы, чтобы можно было выбрать категорию из уже созданных категорий или создать новую, если это необходимо, без использования другого представления
Как я могу его сделать?