[英]Django: How to create one Class Based view with two models which have one-to-many relationship?
我希望用戶能夠創建包含多個圖像的帖子(這就是我有單獨模型的原因)。 我如何使用基於 class 的視圖和一個模板來做到這一點?
模型.py
class UserPost(models.Model):
title=models.CharField(max_length=255)
text=models.TextField()
class Image(models.Model):
user_post = models.ForeignKey(UserPost, on_delete=models.CASCADE)
image = models.ImageField(upload_to='images/')
如果有人為此苦苦掙扎,我以這種方式解決了它。
forms.py
class UploadPostForm(ModelForm):
class Meta:
model=myModels.UserPost
fields=['title','text','category','is_used','price']
class UploadImages(ModelForm):
class Meta:
model=myModels.Image
fields=['image']
視圖.py
class CompletePost(LoginRequiredMixin,View):
def get(self, request, *args, **kwargs):
post_form=myForms.UploadPostForm()
image_form=myForms.UploadImages()
return render(request,'shop/create_post.html',{'post_form':post_form,'image_form':image_form})
def post(self, request, *args, **kwargs):
post_form=myForms.UploadPostForm(request.POST,request.FILES)
image_form=myForms.UploadImages(request.POST)
if post_form.is_valid() and image_form.is_valid():
user_post_v=post_form.save(commit=False)
images=image_form.save(commit=False)
user_post_v.user_id = self.request.user
user_post_v.save()
for image in request.FILES.getlist('image'):
image_obj = shopModels.Image()
image_obj.user_post = user_post_v
image_obj.image = image
image_obj.save()
transaction.commit()
return redirect('home')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.