我正在设置一个交付应用程序。我希望能够创建一个属于创建时登录的用户的接收器。
class CustomUser(AbstractUser):
first_name = models.CharField(max_length=30, blank=False)
last_name = models.CharField(max_length=30, blank=False)
email = models.EmailField(blank=False)
class Reciever (models.Model):
name = models.CharField(max_length=256,blank=False)
我想创建一个属于特定用户的接收器对象。 当我现在创建接收器时,它可供所有用户使用。
最佳答案
在这种情况下,您可以使用 OneToOneField
[Django-doc] ,这是 ForeignKey
[Django-doc] ,但附加了唯一性约束,例如:
class Reciever(models.Model):
name = models.CharField(max_length=256,blank=False)
<b>user = models.OneToOneField(CustomUser, on_delete=models.CASCADE)</b>
在 View 中,您可以将登录用户附加到Receiver
,例如:
def some_view(request):
Receiver.objects.create(name='foo', user=request.user)
当然你已经made CustomUser
your customer model [Django-doc] .
如果您制作了ModelForm
,则可以排除user
字段,并将其设置在 View 中,例如:
def some_view(request):
form = ReceiverForm(request.POST)
if form.is_valid():
object = form.save(commit=False)
object.user = request.user
object.save()
# ...
# ...
关于django - 如何创建属于唯一用户的模型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53947685/