我有一个Django模型,它包括两个相关的模型:“RunningTasks”和“PointsforUser”。我正在尝试为用户创建一个新任务,并将该任务的积分值设置为等于用户当前的积分余额。但是,我不确定如何使用给定的模型来实现这一点。
下面是相关代码:
class PointsforUser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
points = models.IntegerField(null=True, default=0)
slug = models.SlugField(max_length=255, blank=True, unique=True)
class RunningTasks(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
fixed = models.BooleanField(default=False)
slug = models.SlugField(verbose_name='URL', max_length=255, blank=True, unique=True)
task = models.ForeignKey(Task, on_delete=models.CASCADE)
points = models.IntegerField(null=True, default=0)
class TaskCreateForm(forms.ModelForm):
class Meta:
model = RunningTasks
fields = ('task',)
class RunTaskCreateUserView(LoginRequiredMixin,CreateView):
model = RunningTasks
template_name = 'usersboard/tasks_create.html'
form_class = TaskCreateForm
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
return context
class Task(models.Model):
slug = models.SlugField(verbose_name='URL', max_length=255, blank=True, unique=True)
name = models.CharField(max_length=70, blank=True, unique=True, default='')
description = models.TextField( max_length=500)
theme = TreeForeignKey('Theme', on_delete=models.PROTECT, related_name='tasks', null=True)
url = models.CharField( max_length=70, blank=True, null=True, default=10)
status = models.CharField(choices=STATUS_OPTIONS, default='in job', verbose_name='Статус', max_length=10)
time_create = models.DateTimeField(auto_now_add=True)
time_update = models.DateTimeField(auto_now=True)
points = models.CharField( null=True, default=1)
fixed = models.BooleanField( default=False)
如何将用户的积分值设置为任务的默认积分值?
我创造
task = Task.objects.filter(points__lt=PointsforUser.objects.filter(points=F("points")))
但我得到了这个错误:
返回的多个对象:get()返回多个PointsforUser
它返回了2个对象。如何在查询中发送id授权用户?
1条答案
按热度按时间fcipmucu1#
根据你的解释,你似乎在寻找这样的东西: