Django:默认将用户名保存为表格

时间:2019-02-28 14:35:21

标签: django django-forms

我正在尝试构建任务管理器。我应该为创建者用户提供一个字段,为目标用户提供一个字段。

我意识到我无法定义两个指向同一用户列表的外键字段,因此我将目标用户字段作为外键供创建者用户选择,然后我尝试设置活动用户名作为视图中的创建者。

该表单存储所有收集的数据,但不存储视图中的一组数据。我没有收到错误,但该值未保存。

模型

class Tareas(models.Model):
    creador = models.CharField(max_length=100, help_text="Creador", blank=True, null=True)
    destinatario = models.ForeignKey(User, help_text="Estatus del contenido", blank=True, null=True, on_delete=models.CASCADE)
    titulo = models.CharField(max_length=100, help_text="Título de la tarea", blank=True, null=True)
    tarea = models.TextField(max_length=500, help_text="Explicación de la tarea", blank=True, null=True)
    resuelto = models.BooleanField(default=True)
    fecha_creacion = models.DateField(help_text="Fecha de creación", default=datetime.date.today, blank=True, null=True)
    fecha_limite = models.DateField(help_text="Fecha límite", default=datetime.date.today, blank=True, null=True)
    fecha_resuelto = models.DateField(help_text="Fecha de resolución", default=datetime.date.today, blank=True, null=True)

    def __str__(self):
        return str(self.titulo)

表格

class FormularioTareas(forms.ModelForm):
    class Meta:
        model = Tareas
        widgets = {'fecha_limite': forms.DateInput(attrs={'class': 'datepicker'})}
        fields = ["destinatario", "titulo", "tarea", "resuelto", "fecha_limite", "creador", "fecha_creacion"]

视图

@login_required
def TareasView(request):

    tareas_form = FormularioTareas(request.POST)
    tareas = Tareas.objects.all()
    tareas = tareas.order_by("-fecha_creacion")

    if request.method == "POST":
        tareas_form = FormularioTareas(request.POST)
        if tareas_form.is_valid():
            tarea = tareas_form.save(commit=False)
            tarea.creador = request.user.username
            tarea.fecha_creacion = date.today()
            tarea.save()

    return render(request, 'catalog/tareas.html', {
        'tareas_form': tareas_form,
        'tareas': tareas
    })

0 个答案:

没有答案