Django:从模型字段数据中获取模型字段数据
Django: Get model field data from a model field data
我在 views.py 中有类似的东西。
if form.is_valid():
ref_user = User.objects.get(
username=form.cleaned_data['referrer'])
if User.objects.filter(username=ref_user).exists():
user = User.objects.create_user(
username=form.cleaned_data['username']
)
direct = DirectReferral.objects.create(
name = user,
referrer = ref_user # New created referrer
)
if DirectReferral.objects.filter(referrer=ref_user).exists():
# Get the referrer of the newly created referrer in DirectReferral database
indirect = IndirectReferral.objects.create(
name = user,
referrer = # This should be the referrer of the newly created referrer
)
How do I make a query or get the referrer of the newly created
referrer?
要进一步理解我的意思,请查看下图。
希望你能理解我的问题。
我猜代码中有一些错误。
如果form.is_valid():
ref_user = User.objects.get(
username=form.cleaned_data['referrer'])
if User.objects.filter(username=ref_user).exists():
user = User.objects.create_user(
username=form.cleaned_data['username']
)
direct = DirectReferral.objects.create(
name = user,
referrer = ref_user # New created referrer
)
if DirectReferral.objects.filter(referrer=ref_user).exists():
# Here you are checking for something you just created.
# I guess this should be
# DirectReferral.objects.filter(name=ref_user).exists()
# Get the referrer of the newly created referrer in DirectReferral database
indirect = IndirectReferral.objects.create(
name = user,
referrer = # This should be the referrer of the newly created referrer
)
如果你想找到当前创建用户的推荐用户的推荐人,你可以这样做。
如果form.is_valid():
ref_user = User.objects.get(
username=form.cleaned_data['referrer'])
if User.objects.filter(username=ref_user).exists():
user = User.objects.create_user(
username=form.cleaned_data['username']
)
direct = DirectReferral.objects.create(
name = user,
referrer = ref_user # New created referrer
)
try:
referral_of_ref_user = DirectReferral.objects.get(name=ref_user).referrer
except DirectReferral.DoesNotExist:
# Do what needs to be done if direct referral not exist.
print "No referrer"
# Get the referrer of the newly created referrer in DirectReferral database
else:
indirect = IndirectReferral.objects.create(
name = user,
referrer = referral_of_ref_user
)
编辑:
通过对代码进行最少的修改:
如果form.is_valid():
ref_user = User.objects.get(
username=form.cleaned_data['referrer'])
if User.objects.filter(username=ref_user).exists():
user = User.objects.create_user(
username=form.cleaned_data['username']
)
direct = DirectReferral.objects.create(
name = user,
referrer = ref_user # New created referrer
)
if DirectReferral.objects.filter(name=ref_user).exists():
# Get the referrer of the newly created referrer in DirectReferral database
indirect = IndirectReferral.objects.create(
name = user,
referrer = DirectReferral.objects.filter(name=ref_user)[0].referrer
)
我在 views.py 中有类似的东西。
if form.is_valid():
ref_user = User.objects.get(
username=form.cleaned_data['referrer'])
if User.objects.filter(username=ref_user).exists():
user = User.objects.create_user(
username=form.cleaned_data['username']
)
direct = DirectReferral.objects.create(
name = user,
referrer = ref_user # New created referrer
)
if DirectReferral.objects.filter(referrer=ref_user).exists():
# Get the referrer of the newly created referrer in DirectReferral database
indirect = IndirectReferral.objects.create(
name = user,
referrer = # This should be the referrer of the newly created referrer
)
How do I make a query or get the referrer of the newly created referrer?
要进一步理解我的意思,请查看下图。
希望你能理解我的问题。
我猜代码中有一些错误。
如果form.is_valid():
ref_user = User.objects.get(
username=form.cleaned_data['referrer'])
if User.objects.filter(username=ref_user).exists():
user = User.objects.create_user(
username=form.cleaned_data['username']
)
direct = DirectReferral.objects.create(
name = user,
referrer = ref_user # New created referrer
)
if DirectReferral.objects.filter(referrer=ref_user).exists():
# Here you are checking for something you just created.
# I guess this should be
# DirectReferral.objects.filter(name=ref_user).exists()
# Get the referrer of the newly created referrer in DirectReferral database
indirect = IndirectReferral.objects.create(
name = user,
referrer = # This should be the referrer of the newly created referrer
)
如果你想找到当前创建用户的推荐用户的推荐人,你可以这样做。
如果form.is_valid():
ref_user = User.objects.get(
username=form.cleaned_data['referrer'])
if User.objects.filter(username=ref_user).exists():
user = User.objects.create_user(
username=form.cleaned_data['username']
)
direct = DirectReferral.objects.create(
name = user,
referrer = ref_user # New created referrer
)
try:
referral_of_ref_user = DirectReferral.objects.get(name=ref_user).referrer
except DirectReferral.DoesNotExist:
# Do what needs to be done if direct referral not exist.
print "No referrer"
# Get the referrer of the newly created referrer in DirectReferral database
else:
indirect = IndirectReferral.objects.create(
name = user,
referrer = referral_of_ref_user
)
编辑:
通过对代码进行最少的修改:
如果form.is_valid():
ref_user = User.objects.get(
username=form.cleaned_data['referrer'])
if User.objects.filter(username=ref_user).exists():
user = User.objects.create_user(
username=form.cleaned_data['username']
)
direct = DirectReferral.objects.create(
name = user,
referrer = ref_user # New created referrer
)
if DirectReferral.objects.filter(name=ref_user).exists():
# Get the referrer of the newly created referrer in DirectReferral database
indirect = IndirectReferral.objects.create(
name = user,
referrer = DirectReferral.objects.filter(name=ref_user)[0].referrer
)