【发布时间】:2021-12-05 10:48:05
【问题描述】:
我是 django 的初学者,几周来我一直在努力将表单中用户选择的选项与我数据库中的数据关联起来,以列出所选品牌的徽标和模板中的车型图像。
到目前为止,我已经成功地将所选表单中的数据(MasinaSelectata 模型)带入并存储在数据库中,数据根据客户端的 ip 进行更新。
现在我需要使用(MasinaSelectata 模型)中存储的数据,并在(Constructor 模型)中列出品牌标志和(Model 模型)中的模型图像。由于缺乏经验和知识,我没能做到。
我尝试了几个变种,没有一个成功,我最后一次尝试是下面的。
型号:
class Constructor(models.Model):
constructor_nume = models.CharField(max_length=100, unique=True)
slug = models.SlugField(max_length=150, unique=True)
logo_constructor = models.ImageField(upload_to='photos/selectormasina', blank=True)
class Model(models.Model):
constructor = models.ForeignKey(Constructor, on_delete=models.CASCADE)
model_nume = models.CharField(max_length=200, unique=True)
slug = models.SlugField(max_length=250, unique=True)
imagine_model = models.ImageField(upload_to='photos/selectormasina', blank=True)
class Versiune(models.Model):
constructor = models.ForeignKey(Constructor, on_delete=models.CASCADE)
model = ChainedForeignKey(Model, chained_field="constructor", chained_model_field="constructor",
show_all=False,
auto_choose=True,
sort=True)
versiune_nume = models.CharField(max_length=300, unique=True)
slug = models.SlugField(max_length=350, unique=True)
class MasinaSelectata(models.Model):
constructor = models.ForeignKey(Constructor, on_delete=models.CASCADE)
model = models.ForeignKey(Model, on_delete=models.CASCADE)
versiune = models.ForeignKey(Versiune, on_delete=models.CASCADE)
clientip = models.CharField(max_length=20)
Views.py:
def get_client_ip(request):
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
if x_forwarded_for:
ip = x_forwarded_for.split(',')[0]
else:
ip = request.META.get('REMOTE_ADDR')
return ip
def logo(request):
ip = get_client_ip(request)
select = MasinaSelectata.objects.filter(clientip = ip)
context = { 'select': select}
return render(request, 'navbar.html', context)
模板: 导航栏.html
<div class="col-lg-2 col-md-3 col-6 ">
<!-- logo marca-->
<div class="img-fluid">
<img src="{{ select.constructor.logo_constructor.url }}" alt="{{select.logo.constructor.constructor_nume.url}}"></div>
</div>
我研究了 django 文档、google、youtube 和 SO,但我似乎没有找到解决方案。 我确定这是我缺少的东西,所以请帮助我。
【问题讨论】:
标签: javascript python django django-views django-templates