Django 在';添加或编辑';?

Django 在';添加或编辑';?,django,forms,permissions,decorator,django-guardian,Django,Forms,Permissions,Decorator,Django Guardian,我有一个典型的django视图设置,用于添加新的或编辑当前的“book”模型(通过表单)。这是一种性质: def bookedit(request, bookid=None): if bookid: book = get_object_or_404(Book, pk=bookid) else: book = Book() if request.method == 'POST': <form handling cod

我有一个典型的django视图设置,用于添加新的或编辑当前的“book”模型(通过表单)。这是一种性质:

def bookedit(request, bookid=None):
    if bookid:
        book = get_object_or_404(Book, pk=bookid)
    else: 
        book = Book()

    if request.method == 'POST':
        <form handling code.....>
这在编辑已经创建的书籍的场景中可以正常工作,即,如果用户不是创建者,将抛出403。但是,在添加新书时,bookid是空的,并且会导致decorator代码崩溃。是否有一种处理此场景的好方法(不分离编辑和添加功能)

谢谢,
格里

对不起,这是不可能的。django guardian不是为该请求构建的。无论如何,我建议自己创建所有CRUD视图(创建、读取、更新、删除)。

很抱歉,这是不可能的。django guardian不是为该请求构建的。无论如何,我建议自己创建所有CRUD视图(创建、读取、更新、删除)。嗨。谢谢我刚刚分离出我的添加和编辑视图,一切正常。我想如果可能的话,我最好先检查一下。
@permission_required_or_403('myapp.edit_book', (Book, 'id', 'bookid'))