TEL:400-8793-956
当前位置:程序、服务器

您无需调用user.followers,它们已经是查询集

提问者: 近期获赞: 浏览人数: 发布时间:2021-02-11 15:27:27

 问:我在这里阅读了其他一些答案,说在关注者/关注对象之后删除括号,但这似乎对我不起作用。不太清楚这是想要什么,目前还不清楚。

 
 午餐
进口 日期时间
从烧瓶进口瓶,克,render_template ,闪光灯,重定向,url_for从flask.ext.bcrypt进口check_password_hash从flask.ext.login进口LoginManager ,login_user ,CURRENT_USER ,login_required ,logout_user进口形式导入模型应用程式=瓶(__name__ )应用程式。密钥
 
 =  '这是我们的超级秘密密钥。不要与任何人分享!” 
login_manager  =  LoginManager ()
login_manager 。init_app (应用程序)
login_manager 。login_view  =  'login' 
@ login_manager.user_loader def load_user (userid ):尝试:返回模型。用户。选择()。其中,(型号。用户。ID == INT (用户ID ))
 
        。get ()
除外模型。didNotExist :返回None @ app.before_request def before_request ():g 。db =模型。数据库g 。db 。connect ()g 。用户= current_user @ app.after_request def after_request (响应):g 。db 。close ()返回响应@ app.route (     
 
'/ register' , 方法= ('GET' , 'POST' ))
def  register ():
form = forms 。SignUpInForm ()如果为form 。validate_on_submit ():模型。用户。new (电子邮件=表格。电子邮件。数据,密码=表格。密码。数据)flash (“感谢注册!” )返回      
 
     render_template ('register.html' , 形式=形式)
@ app.route ('/登录' ,方法= ('GET' ,'POST' ))DEF登录():形式=形式。SignUpInForm ()如果为form 。validate_on_submit ():尝试:user = models 。用户。get (模型。用户。电子邮件==表格
 
                  。电子邮件。数据
),如果check_password_hash (用户,密码,表单,密码,数据):login_user (用户)闪光灯(“你现在已经登录!” )其他:闪存(“与电子邮件/密码组合没有用户” ),除了模型。didNotExist :flash (“没有用户使用该电子邮件/密码组合” )返回render_template (            
     
     'register.html' , 形式=形式)
@ app.route ('/秘密' )@login_required高清的秘密():返回“我应该只看到登录用户” @ app.route ('/注销' )DEF注销():logout_user ()返回重定向(url_for ('登录' ))@ app.route ('/' )DEF指数():返回render_template ('的index.html' )@app。路线
 
('/ order' , 方法= ('GET' , 'POST' ))
def  order_lunch ():
form = forms 。LunchOrderForm ()如果为form 。validate_on_submit ():模型。LunchOrder 。创建(用户=克。用户。_get_current_object (),日期=形式。日期。数据,顺序=形式。      
 
            订购。数据。条() 
)返回render_template ('lunch.html' ,形式=形式)@ app.route ('/今天)@login_required DEF今日():为了=模型。LunchOrder 。选择()。其中(车型。LunchOrder 。日期==日期时间。日期。今天()和模型。        
 
        LunchOrder 。用户 == 克。用户。_get_current_object ()
)。获得()返回render_template ('today.html' ,为了=顺序)@ app.route ('/ cancel_order / <INT:ORDER_ID>' )@login_required高清cancel_order (ORDER_ID ):尝试:为了=模型。LunchOrder 。选择()。其中(id =    
 
            order_id ,
用户= g 。用户。_get_current_object ())。get ()除外模型。DidNotNotExist :传递其他:命令。delete_instance ()返回重定向(url_for ('index' ))@ app.route ('/ follow / <int:user_id>' )@login_required def follow (user_id ):try :user = models     
    
          。用户。得到(
型号。用户。ID == USER_ID )模型。关系。创建(FROM_USER =克。用户。_get_current_object (),to_user =用户)除(模型。DoesNotExist ,模型。IntegrityError ):通返回重定向(url_for ('索引' ))@ app.route              
 
('/ unfollow / <int:user_id>' )
@login_required 
def 取消关注(user_id ):
try :user = models 。用户。得到(型号。用户。ID == USER_ID )模型。关系。得到(车型。关系。FROM_USER ==摹。用户。_get_current_object (),模型。关系。    
 
            to_user == user 
)。delete_instance ()除(模型。DoesNotExist ,模型。IntegrityError ):通返回重定向(url_for ('索引' ))@ app.route ('/简档/ <INT:USER_ID>' )DEF轮廓(USER_ID ):用户=模型。用户。选择()。哪里(模型。用户。        
 
        id  ==  user_id 
)。get ()return render_template ('profile.html' ,user = user )    
      
 models.py
进口 日期时间
从flask.ext.bcrypt进口generate_password_hash从flask.ext.login进口UserMixin从peewee进口* DATABASE = SqliteDatabase (':内存:' )类用户(UserMixin ,型号):电子邮件= CharField (唯一=真)密码= CharField (max_length = 100 )join_date = DateTimeField
 
      (默认值=日期时间,日期时间。现在)
生物= CharField (默认= '' )类元:数据库= DATABASE @property高清以下(个体经营):回报(用户。选择() 。加入(关系,在=关系。to_user )。地方(关系。      
 
            FROM_USER  == 自我)
)@property高清的追随者(自我):回报(用户。选择() 。联接(关系,在=关系。FROM_USER )。在那里(的关系。to_user ==自我))@classmethod高清新(CLS ,电子邮件,密码):cls 。创造        
 
       
        (
email = email ,password = generate_password_hash (password ))类LunchOrder (Model ):order = TextField ()date = DateField ()user = ForeignKeyField (User ,related_name = “ orders” )类关系(Model ):from_user = ForeignKeyField (用户,related_name =  
 
       “关系” )
to_user = ForeignKeyField (用户,related_name = “related_to” )created_at = DateTimeField字段(默认=日期时间,日期时间。现在)类元:数据库= DATABASE指数= ((('FROM_USER' ,'to_user' ),真) ,)def initialize ():DATABASE 。连接()       
 
    数据库。create_tables ([ User , LunchOrder ], safe = True )
数据库。关闭()    
 templates / profile.html
{%扩展“ layout.html”%}
 {%来自“ macro.html”导入hide_email%}
 {%块内容%}
 < h1 > {{hide_email(user)}} </ h1 > < dl > < dt >午餐:</ dt > < dd > {{user.orders()。count()}} </ dd > < dt >关注者:</ dt > < dd > {{user.followers.count()}} </ </ dd > < dt >以下:</
 
    dt > 
< dd > {{user.following.count()}} </ dd > </ dl > {%endblock%}
    
 
答:该错误信息是令人误解的。该错误实际上与以下order行有关:
 
< dl > 
< dt >午餐:</ dt > < dd > {{user.orders.count()}} </ dd > {#在“订单”后删除()#}
 < dt >关注者:</ dt > < dd > {{user.followers.count()}} </ dd > < dt >以下:</ dt > < dd > {{user.following.count()}} </ dd > </ dl >   
上一篇: 无法将图像添加到Web设计工作区和挑战问题
下一篇: 网页设计-如何变得更好?