Django 2:无法导入模型并保存i

2024-05-19 05:07:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我不知怎的无法从另一个应用程序导入我的模型。我已经查过了,试过了,但没用。在

事件/模型.py

class Registration(models.Model):
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    team = models.CharField(max_length=50, blank=True)
    date_created = models.DateTimeField(auto_now_add=True)

    def save(self, *args, **kwargs):
        payment = Payment.objects.create(registration=self)
        super().save(*args, **kwargs)

当我运行python时管理.py迁移我明白了。在

错误

^{pr2}$

付款/模型.py

import uuid

from django.db import models
from django.utils import timezone

from events.models import Registration  # THIS WONT WORK


def _create_uuid():
    return uuid.uuid1()

def _get_uuid():
    return _create_uuid()

class Payment(models.Model):
    uuid = models.CharField(max_length=1, default=_get_uuid)
    paid = models.BooleanField(default=False)
    registration = models.ForeignKey(Registration, on_delete=models.CASCADE)

我做错什么了?在


Tags: frompy模型importmodeluuidonmodels
1条回答
网友
1楼 · 发布于 2024-05-19 05:07:52

你有一个循环导入。在这种情况下,可以通过删除Registration导入并使用字符串来避免它:

class Payment(models.Model):
    registration = models.ForeignKey('events.Registration', on_delete=models.CASCADE)

另一个选择是将Payment.objects.create()代码移到signal中。请注意,当前的save()方法在每次保存注册时都会创建一个Payment,这可能不是您想要的。在

相关问题 更多 >

    热门问题