Django跨本机到自定义表的权限

时间:2013-10-21 21:20:50

标签: python django insert django-authentication

Django创建基本的身份验证表,如auth_userauth_user_groupsauth_user_user_permissions等。

我目前有(1)db使用自定义表格,如Tld等.Tld代表顶级域名。

但是,django已经为上面的权限创建了自己的表。如何将auth_user中的特定PK绑定到我的Tld表?

我知道,我知道 FK-> PK 关系,但这不是开箱即用的。

基本上,我想检查一个用户当前是否在这两个表上有一个tld(应该只是一个JOIN),但是因为当前的数据库<any-django-out-of-box-auth>表不知道任何自定义表我已经做好了。

如何让这个过程正常工作,例如,我有一个为Tlds创建新记录的视图:

def Scan(request):
    form = SubmitDomain(request.POST or None) # A form bound to the POST data
    if request.method == 'POST': # If the form has been submitted...
        if form.is_valid(): # If form input passes initial validation...
            domainNmCleaned = form.cleaned_data['domainNm']  ## clean data in dictionary
            form.save() #save cleaned data to the db from dictionary
            try:
                return HttpResponseRedirect('/S/?domainNm=' + domainNmCleaned)
            except:
                raise ValidationError(('Invalid request'), code='300')
    else:
        form = SubmitDomain()

    return render(request, 'myapp/index.html', {
        'form' : form 
    })

如何让它还在另一个名为User的表中插入当前登录的Tld__User ID? 那么,当我将Tld加入系统创建的Auth_User表时,我可以看到用户是否有任何Tld?

谢谢!

1 个答案:

答案 0 :(得分:-1)

经过深入研究后我发现了这个:

from django.contrib.auth.models import User

class Employee(models.Model):
    user = models.OneToOneField(User)
    department = models.CharField(max_length=100)

https://docs.djangoproject.com/en/dev/topics/auth/customizing/#handling-authorization-in-custom-backends