Django 如何创建属于唯一用户的模型对象
我正在设置传送应用程序。我希望能够创建一个属于创建时登录的用户的接收器Django 如何创建属于唯一用户的模型对象,django,model,Django,Model,我正在设置传送应用程序。我希望能够创建一个属于创建时登录的用户的接收器 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
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)
我想创建一个属于特定用户的Receiver对象。
当我现在创建接收器时,它对所有用户都可用。在这种情况下,您可以使用a,它是a,但附加了唯一性约束,如:
class Reciever(models.Model):
name = models.CharField(max_length=256,blank=False)
user = models.OneToOneField(CustomUser, on_delete=models.CASCADE)
当然你已经有了
如果制作了ModelForm
,则可以排除user
字段,并在视图中进行设置,例如:
def some_view(request):
form = ReceiverForm(request.POST)
if form.is_valid():
object = form.save(commit=False)
object.user = request.user
object.save()
# ...
# ...
删除了我的评论,因为威廉的评论更详细。请注意,您在接收器中的“e”和“i”是向后的,因此,如果您试图复制并通过他的答案,请确保修复该问题!
def some_view(request):
form = ReceiverForm(request.POST)
if form.is_valid():
object = form.save(commit=False)
object.user = request.user
object.save()
# ...
# ...