我想在前端显示一些图片,但是我想由管理员上传,删除和更新图片,而不是在前端编写代码。我已经完成了一些代码。我不知道下一步该怎么做。 我的设置代码:
MEDIA_ROOT = os.path.join(BASE_DIR,'static/images/bxslider/')
MEDIA_URL = '/images/bxslider/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'),
)
型号:
class BxSlider(models.Model):
status_choice = (
(0,'online'),
(1,'offline'),
)
status = models.IntegerField(choices=status_choice,default=1)
name = models.CharField(max_length=32)
img = models.ImageField(upload_to='')
herf = models.CharField(max_length=256)
create_date = models.DateTimeField(auto_now_add=True,editable=True)
update_date = models.DateTimeField(auto_now=True,null=True)
class Meta:
db_table = 'BxSlider'
verbose_name_plural = 'index slider'
def __str__(self):
return self.name
观看次数:
def index(request):
#addr = models.BxSlider.objects.get() #I don't know how to write this
return render(request,'index.html',{"addr":addr})
index.html:
<div class="bxslider">
<div><img src="" style="width:100%;"></div> <!-- I don't know how to write,so I can call pictures from admin -->
</div>
答案 0 :(得分:0)
我想由管理员上传,删除和更新图片,而不是在前端编写代码
答案在这里:https://docs.djangoproject.com/en/2.1/ref/contrib/admin/#modeladmin-objects
我不知道怎么写
def index(request):
#addr = models.BxSlider.objects.get() # I don't know how to write this
我们怎么会我们知道您想要哪个BxSlider记录?但是,如果您想说一下在线内容的最后修改:
addr = models.BxSlider.objects.filter(status=1).order_by("-last_modified").first()
所有这些ORM查询内容都记录在这里:https://docs.djangoproject.com/en/2.1/topics/db/queries/
我不知道怎么写,所以我可以从管理员那里打电话给图片
您不会“从管理员那里调用图片”(这没有意义),而是从模型中获取图片。但是无论如何,答案还是in the documentation:
可以使用url属性获取上载文件的相对URL
很简单,所以您想要:
<div class="bxslider">
<img src="{{ addr.img.url }}">
</div>
答案 1 :(得分:0)
我想由管理员上传,删除和更新图片,而不是在前端编写代码。
1)您可以使用默认的django管理控制台。您不必为此编写代码。它只是django的默认发货。
2)注册您要上传,删除和更新图片的模型@ admin.py。
您可以在以下链接中了解有关默认管理控制台的更多信息:
https://first-django-admin.readthedocs.io/en/latest/
希望有帮助。
答案 2 :(得分:0)
谢谢大家!我已经解决了这个问题,这是我的答案:
设置:
MEDIA_ROOT = os.path.join(BASE_DIR,'medias/bxslider/')
MEDIA_URL = '/medias/'
型号:
class BxSlider(models.Model):
status_choice = (
(0,'online'),
(1,'offline'),
)
status = models.IntegerField(choices=status_choice,default=1)
name = models.CharField(max_length=32)
img = models.ImageField(upload_to='')
herf = models.CharField(max_length=256)
create_date = models.DateTimeField(auto_now_add=True,editable=True)
update_date = models.DateTimeField(auto_now=True,null=True)
class Meta:
db_table = 'BxSlider'
verbose_name_plural = 'index slider'
def __str__(self):
return self.name
index.html
<div class="bxslider">
{% for i in img_addr %}
<div><a href="{{ i.herf }}"><img src="/medias/{{ i.img }}" style="width:100%;"></a></div>
{% endfor %}