Python 是否可以在包含两个外键的模型中插入值?

Python 是否可以在包含两个外键的模型中插入值?,python,django,Python,Django,我有一个带有两个外键的模型,我想在一行中插入值。 例如,模型是: from __future__ import unicode_literals from django.db import models from cms.models.authUser import AuthUser from cms.models.masterCmsUserTypes import MasterCmsUserTypes class MasterCmsUser(models.Model): userI

我有一个带有两个外键的模型,我想在一行中插入值。 例如,模型是:

from __future__ import unicode_literals

from django.db import models
from cms.models.authUser import AuthUser
from cms.models.masterCmsUserTypes import MasterCmsUserTypes

class MasterCmsUser(models.Model):
    userId = models.ForeignKey(AuthUser,db_column='userId')
    userTypeId = models.ForeignKey(MasterCmsUserTypes,  db_column='userTypeId')
    status = models.BooleanField(db_column="status", default=False, help_text="")
    isDelete = models.BooleanField(db_column="isDelete", default=False, help_text="")
    createdAt = models.DateTimeField(db_column='createdAt', auto_now=True, help_text="")
    modifiedAt = models.DateTimeField(db_column='modifiedAt', auto_now=True, help_text="")
    idv2 = models.IntegerField(db_column='idV2')

    class Meta:
        managed = False
        db_table = 'master_cms_user'
以下是我的看法:

@login_required
def admin_user_add(request):
    try:
        master_cms_user_type_list =MasterCmsUserTypes.objects.all()
        first_name = request.POST.get('firstName')
        last_name = request.POST.get('lastName')
        password = request.POST.get('password')
        username = request.POST.get('username')
        confirmPassword = request.POST.get('confirmPassword')
        email = request.POST.get('email')
        status = request.POST.get('status')
        userTypeId = request.POST.get('userType')
        if status is None or status == '':
            status = False
        else:
            status = True
        staff=False
        superUser=False
        if password != confirmPassword:
                messages.error(request,'Password and Confirm Password must be same')
        if request.method =='POST':
            authUser = AuthUser(firstName=first_name,lastName=last_name,password=password,username=username,email=email,
                                isActive=status,isStaff=staff,isSuperuser=superUser)
            authUser.save()
            messages.success(request, 'Successfully added to the university list')
            print authUser.id
            authid = int(authUser.id)
            # ci= get_object_or_404(AuthUser, id=authUser.id)
            # print authid
            # myu_admin_user = AuthUser.objects.get(id=authid)
            # print myu_admin_user
            cmsStatus=True
            cmsDelete=False
            masterCmsUser = MasterCmsUser(userId=authid,userTypeId=userTypeId,status=cmsStatus,isDelete=cmsDelete)
            masterCmsUser.save()


        return render(request, 'templates/admin_user_management/admin_user_add.html',{
            'master_cms_user_type_list':master_cms_user_type_list
            })
    except Exception as e:
        print e
        raise Http404

现在,当我删除froeign键CONSTRAINT时,这些值被成功地插入到表中。但是,当我有外键时,它会询问具有外键绑定的表的实例。

是的,这是可能的,您说它询问“具有外键绑定的表的实例”意味着您需要外键对象的实例。。您正在尝试分配值。你可以用下面的方法来做

获取如下用户类型

usertype = UserType.objects.get(type=request.POST.get('userType'))
并使您的插入查询

masterCmsUser = MasterCmsUser(userId=authUser,userTypeId=usertype,status=cmsStatus,isDelete=cmsDelete)

呃,是的,当然有可能。你尝试过什么,在哪里遇到困难?是的,这是可能的。但除此之外,我们无法帮助您,因为您需要尝试,然后询问您是否在django中遇到困难。快速提示:不要在django中命名外键,如
userId
。它是表中的id,但使用此字段时,它的行为类似于用户对象。您不需要显式设置
db_column
@YevhenKuzmovych,我已经这样做了,它正在工作,但是如果我希望外部约束应该存在,然后我插入与您的问题无关的值,但是正如我之前告诉您的,您需要停止这样做,尝试/除外,然后提高404。不要这样做。首先,404是错误的结果;但在任何情况下,如果您允许,Django已经可以处理任何错误。只需删除try/except。