Попытка связать две модели вместе в Django: проблемы - PullRequest
0 голосов
/ 03 марта 2020

Попытка работать через связывание двух моделей или объединение двух таким образом, чтобы не создавать ошибку.

У меня есть одна модель, которая является просто FileField и принимает загруженный файл

class FitFiles(models.Model):

    fitfiles=models.FileField(upload_to='PMC/fitfiles' null=False)

У меня есть другая модель, которая заполнена той же функцией загрузки и в основном выполняет некоторые вычисления на основе файл загружен

class RideSum(models.Model):
    fitfiles = models.OneToOneField(FitFiles, on_delete=models.CASCADE)
    ftp = models.IntegerField()
    norm_power = models.IntegerField()
    intensity = models.FloatField()
    tss = models.FloatField()
    date = models.DateField()

Проблема, связанная с описанным выше подходом, заключается в том, что я получаю сообщение об ошибке, что fitfiles_id не найден.

Я пытался просто поместить все под одну модель, но проблема в том, что файловое поле 'fitfiles' возвращает нулевое значение, и я получаю ошибку ограничения не равной нулю. Был любопытен совет о том, как справиться.

В настоящее время я могу отлично справиться с этими двумя моделями, полностью отделенными (т.е. не пытаясь связать две модели), но с DetailView мне нужно убедиться, что они всегда имеют одинаковый pk, и если для чего-либо Причиной смещения первичных ключей между этими моделями становится то, что DetailView становится беспорядком различной информации.

Рад опубликовать и уточнить

1 Ответ

0 голосов
/ 03 марта 2020

Ограничение NOT NULL - это ограничение столбца, которое гарантирует, что значения, хранящиеся в столбце, не равны NULL. Столбец может содержать только одно ограничение NOT NULL, которое определяет правило, согласно которому столбец не должен содержать значение NULL. Другими словами, если вы обновите или вставите NULL в столбец NOT NULL, программа выдаст ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...