问题描述
我使用的是 django-cookiecutter
用户模型(添加了 VideoTape ManyToMany
连接)。
我已经创建了自己的模型 VideoTape。
我想通过单击 VideoTape 详细信息页面上的 "RENT"
按钮来创建为用户添加 VideoTape 的选项(通过更新 User 中的 videotapes 字段):
models.py:
class User(AbstractUser):
name = CharField(_("Name of User"),blank=True,max_length=255)
first_name = None # type: ignore
last_name = None # type: ignore
videotapes = models.ManyToManyField(VideoTape,null=True)
def get_absolute_url(self):
return reverse("users:detail",kwargs={"username": self.username})
class VideoTape(models.Model):
title = models.CharField(max_length=256,verbose_name=_("VideoTape Title"))
slug = models.SlugField(max_length=256,unique=True,editable=False)
description = models.TextField(verbose_name=_("VideoTape Description"))
genres = models.TextField(verbose_name=_("VideoTape Genres"),null=True)
thumbnail = models.URLField(null=True)
def save(self,*args,**kwargs):
if not self.slug:
base = self.title.strip()
for candidate in generate_slug(base):
if not VideoTape.objects.filter(slug=candidate).exists():
self.slug = candidate
break
else:
raise Exception("Can't create new VideoTape object")
super().save(*args,**kwargs)
def get_absolute_url(self):
return reverse("videotapes:detail",kwargs={"slug": self.slug})
def __str__(self):
return self.title
videotape_detail.html
{% extends "base.html" %}
{% block content %}
{% if request.user.is_superuser %}
<div>
<a href="{% url 'videotapes:update' slug=videotape.slug %}"
class="btn btn-outline-primary">
<i class="fa fa-edit"></i>Edit
</a>
<a href="{% url 'videotapes:delete' slug=videotape.slug %}" class="btn btn-outline-danger">
<i class="fa fa-times"></i>Delete
</a>
</div>
{% endif %}
<div class="card">
<div class="card-horizontal">
<div class="img-square-wrapper">
{% if videotape.thumbnail %}
<img class=""
src="{{ videotape.thumbnail }}"
alt="Card image cap"
style="height: 700px; width: 100%; display: block;">
{% else %}
<img class=""
src="-"
alt="Stock card image cap"
style="height: 700px; width: 100%; display: block;">
{% endif %}
</div>
<div class="card-body">
<h4 class="card-title"> {{ videotape.title }} </h4>
<p class="card-text"><b>Description:</b> {{ videotape.description }} </p>
<p class="card-text"><b>Genres:</b> {{ videotape.genres }} </p>
</div>
</div>
</div>
{% endblock %}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)