Django:创建一个模型,每个月的每一天都有一组值

时间:2018-06-17 16:08:15

标签: django django-models

假设我想创建一个表单,允许用户为该月的每一天输入2个数值。 (例如计数和费率)。由于每个月都有不同的天数,我该如何才能最好地创建它。

我应该创建一个预先填充所有天数的模型吗?

$db = db_connect();

$title = $_POST['post_title'];
$content = $_POST['post_content'];
$id = $_GET['post'];
$userId = $_GET['id'];


$query =  "UPDATE post";
$query .= "SET title = $title, content=$content";
$query .= "WHERE id= $id";  

$result = mysqli_query($db, $query);

//Error handling 
if(!$result) {
    echo  "Query failed" . mysqli_error($connection);
    }
    else {
        echo "Post updated";
    }

db_disconnect($db);

或者我应该创建某种onetomany字段?

class myModel(models.Model):
    user = ...
    day1 = models.DateField(default=None, blank=True, null=True)
    day1_count = models.IntegerField(default=9, min=0, max=100)
    day1_rate = models.DecimalField(default=0.00, max_digits=100, decimal_places=2)
    day2 = models.DateField(default=None, blank=True, null=True)
    day2_count = models.IntegerField(default=9, min=0, max=100)
    day2_rate = models.DecimalField(default=0.00, max_digits=100, decimal_places=2)
    ...
    day31 = models.DateField(default=None, blank=True, null=True)
    day31_count = models.IntegerField(default=9, min=0, max=100)
    day31_rate = models.DecimalField(default=0.00, max_digits=100, 

我觉得后面的选择更好,但我不知道如何充实它。

1 个答案:

答案 0 :(得分:1)

这样的模型
class PerDateInfo(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    day = models.DateField()
    count = models.IntegerField(default=9, min=0, max=100)
    rate = models.DecimalField(default=0.00, max_digits=100, decimal_places=2)

    class Meta:
        unique_together = (('user', 'day'),)

会让每个用户为每个日历日期保存countrate。也许这会有所帮助吗?