我正在尝试使用 Django 在 QuerySet 中创建一个过滤器,该过滤器返回当前登录用户提交的最新实例。
到目前为止,我的 view.py 文件中有以下内容:
def transfer(request):
title = 'Transfers'
queryset = Transfer.objects.filter(user=request.user).latest('timestamp')
context = {
"title": title,
"queryset": queryset,
}
if request.method == "POST":
print request.POST
return render(request, "transfer.html", context)
Run Code Online (Sandbox Code Playgroud)
但是这会返回错误
类型错误:“传输”对象不可迭代
到目前为止,我的 models.py 文件如下所示:
from django.db import models
from django.contrib.auth.models import User
class Transfer(models.Model):
id = models.AutoField(primary_key=True)
user = models.ForeignKey(User)
amount = models.DecimalField(max_digits=10, decimal_places=2)
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
Run Code Online (Sandbox Code Playgroud)
我的 html 文件通过以下方式调用 QuerySet:
{% if request.user.is_authenticated %}
<h2>Your Transfers</h2>
{% if queryset %}
{% for instance …Run Code Online (Sandbox Code Playgroud) 有人可以帮我在模型中创建一个字段,以便在用户每次提交表单时生成唯一的 8 字符字母数字字符串(即 A########)ID 吗?
我的models.py表单目前如下:
from django.db import models
from django.contrib.auth.models import User
class Transfer(models.Model):
id = models.AutoField(primary_key=True)
user = models.ForeignKey(User)
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
Run Code Online (Sandbox Code Playgroud)
我已经查看了 python 的 UUID 功能,但与我想要生成的标识符相比,这些标识符相当长且混乱。
任何帮助将不胜感激!