Django Refreence数据库级别的非字段值

class Author(models.Model):
    ...


class Book(models.Model):
    author = models.ForeignKey(Author)
    book_seq = models.PositiveIntegerField()

    class Meta:
        unique_together = ('author','book_seq')

    def create_book_for_author(cls,author):
        book_seq = Book.objects.filter(author=author).count() + 1
        Book.objects.create(author=author,book_seq=book_seq)

有什么方法可以在数据库级别引用此book_seq = Book.objects.filter(author=author).count() + 1,因为如果同时执行此行,则唯一约束将失败,而第二个通过插入查询到达数据库的约束将失败。我知道一种选择是交易,但是还有其他方法吗? F()对象仅适用于具体字段,不适用于数据库查询。

zhangfeng1234567 回答:Django Refreence数据库级别的非字段值

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3160723.html

大家都在问