首先,如果你提到一个用户,你最好使用
ForeignKey
[Django-doc]
:
from django import models
from django.contrib.auth import get_user_model
class MyModel(models.Model):
rate = models.CharField(max_length=100)
amount = models.FloatField()
user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, blank=True, editable=False)
created = models.DateTimeField(auto_now_add=True)
一
外键
保证它将引用用户。此外,如果您请求的话,它还将惰性地加载用户对象。
你也可以设置
DateTimeField
[Django-doc]
与
**
auto_now_add=...
parameter [Django-doc]
设置为
True
. 这意味着它将在构建记录时获取值。
然后可以在视图中设置用户对象,如:
from app.forms import MyForm
from django.contrib.auth.decorators import login_required
@login_required
def some_view(request):
if request.method == 'POST':
form = MyForm(request.POST, request.FILES)
if form.is_valid():
form.instance.user = request.user
form.save()
return redirect('some_view_name')
else:
form = MyForm()
return render(request, 'some_template.html', {'form': form})
因为您想设置该记录的用户,所以可能应该用
@login_required
decorator [Django-doc]
.