我有以下内容:
class Destination(models.Model):
name = models.CharField
picture = models.ImageField
def __unicode__(self):
return u"%s" % self.name
class Vacation(models.Model):
destination = models.ForeignKey(Destination)
在我的Django Admin界面中创建模型时,我希望我的目的地显示为带有目的地名称和目的地图片的单选按钮。
我正在使用自定义的add_form模板,因此显示带目的地名称的单选按钮没有问题,但包含图片很困难。
我想保留__unicode__(self)
原样,我只需要在此管理视图中随对象返回的图片。我也不想内联对象。
有关如何执行此操作的任何建议(包括如何将其合并到模板中)都会很棒!
编辑:This SO post非常接近我的需要,但我想访问单个选择数据,而不是从修改后的标签中解析它。
答案 0 :(得分:0)
这不是特定于管理员的答案,但如果您可以为表单使用自定义模板,我认为它应该在admin中工作。
您可以创建一个经过修改的小部件(可能作为现有Django小部件的子类),将模型中的额外字段发送到自定义小部件模板。
您还可以在显示它的模板中手动呈现表单,并创建一个包含标记,使用目标对象的id获取任何额外信息,该标记作为选项的值传递。 / p>
例如:
<强> your_template.html 强>
{% load destinations %}
{% for opt in form.destination %}
{{ opt.tag }}
{% destination opt.data.value %}
{% endfor %}
destinations.py (在your_app / templatetags中)
from django import template
from your_app.models import Destination
register = template.Library()
@register.inclusion_tag('your_app/destination-option.html')
def destination(id):
destination=Destination.objects.filter(id=int(id)).first()
return {'destination':destination}
目标-option.html 强>
<!-- any formatting you prefer -->
{{destination.title}}
<img src="{{destination.picture.image_url}}">