我有两个模型1-后2-postimage,使后可以有多个图像,所以我有一个麻烦,以更新后,它的图像在我的模板
我不喜欢上传多个图像,当我创建一个职位,把我不知道如何做到这一点与更新后,所以可以任何一个告诉我如何做到这一点,或给予我一个教程链接,因为我搜索了很多,找不到任何教程
这是我的模特
class Post(models.Model, HitCountMixin):
ch = [
('pvp','pvp'),
('Default','Default'),
('bedrock','bedrock')
]
xch = [
('x1','x1'),
('x4','x4'),
('x8','x8'),
('x16','x16'),
('x32','x32'),
('x64','x64'),
('x128','x128'),
('x256','x256'),
('x512','x512'),
]
vch = [
('1.7','1.7'),
('1.8','1.8'),
('1.9','1.9'),
('1.10','1.10'),
('1.11','1.11'),
('1.12','1.12'),
('1.13','1.13'),
('1.14','1.14'),
('1.15','1.15'),
('1.16','1.16'),
('1.17','1.17'),
]
author = models.ForeignKey(Profile,on_delete=models.CASCADE)
title = models.CharField(max_length=150)
content = models.TextField()
mainimage = models.ImageField(null=True ,upload_to=thumbnail_upload_to)
rpfile = models.FileField(null=True, upload_to=file_upload_to)
version = models.CharField(max_length=50, null=True)
xnumber = models.CharField(max_length=50, choices=xch, null=True)
category = models.CharField(max_length=50, choices=ch, null=True)
discord_id = models.CharField(max_length=150)
date_added = models.DateTimeField(auto_now_add=True)
hit_count_generic = GenericRelation(
HitCount, object_id_field='pk',
related_query_name='hit_count_generic_relation')
likes = models.ManyToManyField(User, related_name='blog_posts')
private = models.BooleanField(default=False)
proved = models.BooleanField(default=False)
def total_likes(self):
return self.likes.count()
def __str__(self):
return str(self.title)[:30]
def save(self, *args, **kwargs):
if self.pk is None:
saved_image = self.mainimage
self.mainimage = None
rpfile = self.rpfile
self.rpfile = None
super().save(*args, **kwargs)
self.mainimage = saved_image
self.rpfile = rpfile
if 'force_insert' in kwargs:
kwargs.pop('force_insert')
super().save(*args, **kwargs)
class Meta:
ordering = ['-date_added']
def get_absolute_url (self):
return reverse('post_detail', kwargs={'pk': str(self.pk)})
class PostImage(models.Model):
post = models.ForeignKey(Post, default=None, on_delete=models.CASCADE)
images = models.FileField(upload_to =in_post_images_upload_to)
def save(self, *args, **kwargs):
if self.pk is None:
saved_image = self.images
self.images = None
super().save(*args, **kwargs)
self.images = saved_image
if 'force_insert' in kwargs:
kwargs.pop('force_insert')
super().save(*args, **kwargs)
def __str__(self):
return self.post.title
1条答案
按热度按时间oalqel3c1#
您可以使用Django内联管理,Django管理界面能够在同一页面上编辑模型作为父模型。这些称为内联。如上述型号:
这将允许用户在同一页面上添加多个图像以编辑或创建帖子。
参考号:Django Inline Admin