如何在Python Django中从数据库中的对象获取特定属性?
对于任务,我必须创建一个网站,用户可以在其中添加数据库中的其他用户作为他的朋友。为了实现这一点,我想创建一个dropdownlist,用户可以在其中选择其他用户的名字+姓氏。但是,如何创建包含所有用户名的列表?如何制作下拉列表 这是我的模特如何在Python Django中从数据库中的对象获取特定属性?,python,django,Python,Django,对于任务,我必须创建一个网站,用户可以在其中添加数据库中的其他用户作为他的朋友。为了实现这一点,我想创建一个dropdownlist,用户可以在其中选择其他用户的名字+姓氏。但是,如何创建包含所有用户名的列表?如何制作下拉列表 这是我的模特 class User(models.Model): firstname = models.CharField(max_length=30) lastname = models.CharField(max_length=50) cou
class User(models.Model):
firstname = models.CharField(max_length=30)
lastname = models.CharField(max_length=50)
country = models.CharField(max_length=50)
email = models.EmailField(max_length=50)
phone = models.CharField(max_length=30)
password = models.CharField(max_length=128)
GENDER_CHOICES = (
('M','Male'),
('F','Female'),
('X','X'),
)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
这是我在views.py中的register_视图:
def register_view(request):
if 'email' in request.GET:
newUser = User(firstname=request.GET['firstname'],
lastname=request.GET['lastname'],
country=request.GET['country'],
email=request.GET['email'],
phone=request.GET['phone'],
password=request.GET['password'],
gender=request.GET['gender'])
newUser.save()
return redirect('/login')
else:
return render(request, 'register.html')
请帮帮我…我为我愚蠢的问题和我的英语深表歉意,因为它不是我的母语。然而,我真的需要至少在这方面有所突破
非常感谢 如果你的意思是像dropdown那样,纯Django可能还不够,试试bootstrap之类的东西,它很容易使用。
但是,如果您不想费心使用一些前端框架,只需要一个简单的选择输入框,旁边有一个提交按钮,Django可以这样做
首先,您需要添加一个字段来跟踪朋友,并指定如何显示这些用户:
类Usermodels。模型:
firstname=型号。CharFieldmax_长度=30
lastname=型号。CharFieldmax_长度=50
国家/地区=型号。Charfield最大长度=50
电子邮件=型号。电子邮件字段最大长度=50
电话=型号。CharFieldmax_长度=30
密码=型号。CharFieldmax_长度=128
friends=models.ManyToManyFieldself
性别选择=
“M”,“男性”,
“F”,“女性”,
"X","X",,
性别=型号。CharFieldmax_长度=1,选项=性别_选项
定义自身:
返回f{self.firstname}{self.lastname}
然后为用户模型添加一个
来自django导入表单
从appname.models导入用户
类registerforms.ModelForm:
类元:
模型=用户
字段='\uuuu所有\uuuu'
在view.py中,将其传递给模板
def寄存器_视图请求:
如果request.method==“POST”:
你的代码
register\u form=RegisterFormrequest.POST
如果登记表有效:
注册表格保存
返回重定向'/login'
elif request.method==“GET”:
你的代码
register\u form=RegisterForm
返回渲染
要求
'register.html',
{
“注册表格”:注册表格,
}
最后,以以下方式呈现表单:
{%csrf_令牌%}
{{form}}
您可能有很多不熟悉的概念,如果有什么让您感到困惑,请留下评论。您打算如何开发前端?您正在使用django表单吗?您的列表是否应该包含您的用户模型中的所有名字+姓氏?或者你会排除其中一些,至少其中一个?谢谢你的详细回答。但是,仍然存在一些问题:当我在models.py中尝试从appname.models导入用户时,他们说由于导入未解决而出现错误。这怎么可能?当我在views.py中写入这一行时,不会出现相同的错误。由于我甚至不能前进到这一点,我不知道结果会是什么,因此有以下问题:我希望在用户进入数据库时,表单不在注册页面,而是在欢迎页面上,登录用户可以选择朋友。我应该换什么?谢谢@SoufianeAswin等等,你是不是真的把appname.models import User复制到你的models.py文件中了?@SoufianeAswin你可以试试django.contrib.auth.models.User中的User类,这样你就可以像使用django的API一样注销,然后把add-friend表单放在欢迎页面上,这会容易得多。但是请记住编写自己的代码,而不是从答案中复制,否则它将无法工作。