问题描述
在更新并提交文件后,在我的项目中,我想重定向到内容中的关联对象 我怎么能做到? 如果我想在文件模型中使用 def get_absolute_url,我如何使用它重定向到 urls.py 中定义的“content.detail” 我试过这个:
def get_absolute_url(self):
return reverse('content.detail',args=[str(self.id)])
并且它返回与 File 具有相同 id 的内容对象,例如,如果我们有一个 File id=5,它通过 id=74 与内容相关联,通过 get_absolute_url 函数,它返回一个 content id=5,但我希望它返回 content id=74。
models.py
class File(models.Model):
history = AuditlogHistoryField()
extension = models.CharField(max_length=20,default='html')
base64encoded = models.BooleanField(default=False)
compressed = models.BooleanField(default=False)
data = models.TextField()
class Content(models.Model):
history = AuditlogHistoryField()
name = models.CharField(max_length=120,unique=True)
sorry_content_file = models.ForeignKey(
File,on_delete=models.CASCADE,null=False,related_name='first_file')
busy_content_file = models.ForeignKey(
File,related_name='second_file')
emergency_content_file = models.ForeignKey(
File,related_name='last_file')
created_at = models.DateTimeField(auto_Now_add=True)
updated_at = models.DateTimeField(auto_Now=True)
view.py
class FilesUpdateView(generic.UpdateView):
model = File
fields = ['data']
file_form.html
{% block content %}
<form method="POST" class="user">
<div class="row">
<div class="col-lg-8">
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">{% trans 'Details' %}</h6>
</div>
<div class="card-body">
{% csrf_token %}
{% for field in form.visible_fields %}
<div class="form-group">
{{ field.label_tag }}
{% render_field field class='form-control' %}
{% if field.help_text %}
<p class="help-block">{{ field.help_text }}</p>
{% endif %}
</div>
{% endfor %}
</div>
</div>
<p>
<button type="submit" class="btn btn-primary btn-icon-split">
<span class="icon text-white-50">
<i class="fas fa-check"></i>
</span>
<span class="text">{% trans 'Submit' %}</span>
</button>
<a href="{% url 'content.list' %}" class="btn btn-secondary btn-icon-split">
<span class="icon text-white-50">
<i class="fas fa-times"></i>
</span>
<span class="text">{% trans 'Cancel' %}</span>
</a>
</p>
</div>
</form>
{% endblock %}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)