首页 > 解决方案 > django中的模型定义是否正确

问题描述

我在我的 models.py 文件中定义了以下模型。我正在尝试仅为成员为空的行填充分配表。

from django.db import models
from django.contrib.auth.models import User

# Create your models here.



class Member(models.Model):
    user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
    DESIGNATION = [
        ('Developer', 'Developer'),
        ('Tester', 'Tester'),
        ('Support', 'Support'),
        ]
    name = models.CharField(max_length=200, null=True)
    role = models.CharField(max_length=100, null=True, choices=DESIGNATION)
    email = models.CharField(max_length=200, null=True)
    date_created = models.DateTimeField(auto_now_add=True, null=True)


    def __str__(self):
        return self.name



class Task(models.Model):
    CATEGORY = [
        ( 'Low', 'Low'),
        ('Medium', 'Medium'),
        ('Urgent', 'Urgent'),
        ]

    STATUS = [
        ('Not Started', 'Not Started'),
        ('In Progress', 'In Progress'),
        ('Completed', 'Completed'),
        ]
    
    name = models.CharField(max_length=200, null=True)
    category = models.CharField(max_length=200, null=True, choices=CATEGORY)
    description = models.CharField(max_length=200, null=True)
    date_created = models.DateTimeField(auto_now_add=True, null=True)
    member = models.ForeignKey('Member', null=True, on_delete=models.CASCADE)
    task_status = models.CharField(max_length=200, null=True, choices=STATUS)



    def __str__(self):
        return self.name




class Allocation(models.Model):
    
    member = models.ForeignKey('Member', null=True, on_delete=models.CASCADE)
    task = models.OneToOneField('Task', null=True, on_delete=models.CASCADE)
    date_created = models.DateTimeField(auto_now_add=True, null=True)
    

    def __str__(self):
        return self.task.name


这是我对任务分配的看法


def allocate_task(request, pk):

    task_details = Task.objects.get(id=pk)
    form = TaskAllocateForm(instance=task_details)
    if request.method == 'POST':
        form = TaskAllocateForm(request.POST, instance=task_details)
        if form.is_valid():
            form.save()
            return redirect('/')

表格.py:

class TaskAllocateForm(ModelForm):  
    class Meta:         
        model = Task         
        fields = ['name', 'member', 'task_status']

我正在使用运行良好的 create 方法创建新任务。我正在尝试将该任务分配给成员表中的成员。但是,allocate_task 视图中的 form.save() 方法没有反映分配表中的更改

标签: djangomodel

解决方案


推荐阅读