我有用户,视频,主题,标准和评级
你可以看到我的原始帖子Django - 评级模型示例DetailView模板,以获得所用模型的详细信息
我已经扩展了DetailView基于视频模型的模板,将给定用户的所选视频的评级列表作为额外的上下文.
class VideoFileDetailView(DetailView):
model = VideoFile
def get_context_data(self, **kwargs):
context = super(VideoFileDetailView, self).get_context_data(**kwargs)
context['rates'] = VideoRate.objects.filter(video=self.object, user=self.request.user)
return context
Run Code Online (Sandbox Code Playgroud)
在被指向的模板DetailView,我想列出指标分析中的视频,并为每个标准显示当前评级值形成用户. …
我有一个带有可选文件字段的模型
class MyModel(models.Model):
name = models.CharField(max_length=50)
sound = models.FileField(upload_to='audio/', blank=True)
Run Code Online (Sandbox Code Playgroud)
我们放一个值
>>> test = MyModel(name='machin')
>>> test.save()
Run Code Online (Sandbox Code Playgroud)
为什么我这样做?
>>> test.sound
<FieldFile: None>
>>> test.sound is None
False
Run Code Online (Sandbox Code Playgroud)
如何检查是否有文件集?
我正在关注官方Django文档中的第一个应用程序教程,并在尝试保存通过管理页面进行的一些更改时遇到此错误.我做了一些研究,但我能找到的可能的解决方案,比如迁移数据库,根本行不通.如果您想查看我的代码的某些特定部分,请告诉我.
以下是错误:
Operational错误在/ admin/polls/question/1 /更改/没有这样的表:main.auth_user__old请求方法:POST请求URL:http://127.0.0.1:8000/admin/polls /question/1/change/ Django版本: 2.1.4异常类型:OperationalError异常值:没有这样的表:main.auth_user__old异常位置:/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/sqlite3/base .py in execute,第296行Python可执行文件:/ Users/gfioravante/Projects/test_app/ta_env/bin/python3 Python版本:3.7.1 Python路径:
['/ Users/gfioravante/Projects/test_app/test_app','/ usr /local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python37.zip','/ usr/local/Cellar/python/3.7.1/Frame /Python.framework/Version/3.7/lib/python3.7','/ usr/local/Cellar/python/3.7.1/Frame /Python.framework/Version = 37/lib/python3.7/lib-dénd','/ Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages']服务器时间:2018年12月5日星期三16:45:00 +0000
和追溯:
环境:
请求方法:POST请求URL:http://127.0.0.1: 8000/admin/polls /question/1change /
Django版本:2.1.4 Python版本:3.7.1已安装的应用程序:['polls.apps.PollsConfig','django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django .contrib.sessions','django.contrib.messages','django.contrib.staticfiles']已安装的中间件:['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django .middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware "]
追溯:
在_execute 85中输入文件"/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/utils.py".返回self.cursor.execute(sql,params)
执行296中的文件"/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py".返回Database.Cursor.execute(self,query, PARAMS)
上面的异常(没有这样的表:main.auth_user__old)是以下异常的直接原因:
内部34中的文件"/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/core/handlers/exception.py"response = get_response(request)
在_get_response 126中输入文件"/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/core/handlers/base.py".response = self.process_exception_by_middleware(e,request)
_get_response中的文件"/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/core/handlers/base.py"124. response = wrapped_callback(request,*callback_args,**callback_kwargs)
在包装器604中输入文件"/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py".返回self.admin_site.admin_view(查看)(*args,**kwargs)
_wrapped_view中的文件"/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/utils/decorators.py"142. response = view_func(request,*args,**kwargs)
_wrapped_view_func中的文件"/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/views/decorators/cache.py"44.response = view_func(request,*args,**kwargs)
内部223.文件"/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/sites.py"返回视图(request,*args,**kwargs)
在change_view 1640中输入文件"/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/contrib/admin/options.py".return self.changeform_view(request,object_id,form_url,extra_context)
在_wrapper 45中输入文件"/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/utils/decorators.py".返回bound_method(*args,**kwargs)
_wrapped_view中的文件"/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/utils/decorators.py"142. response …
我需要让我的Django应用程序允许我为某个模型字段设置一个默认值NULL.我已经查看了null,blank和default参数,但是我不太清楚我需要使用哪三种组合来获得所需的效果.我尝试过设置,default=NULL但它犯了一个错误.如果我指定blank=True, null=True并且没有默认值,那么它是否会默认返回NULL来运行时?
我在django中实现了密码恢复功能.使用我的方法,新密码将被发送到他输入的电子邮件ID.当我提供正确的电子邮件(数据库中存在的电子邮件ID)时,它的工作正常.但是当我给出一个不在数据库中的电子邮件ID时,它会给我这个错误'DoesNotExist at/forgotPassword /
大学详细信息匹配查询不存在.'.有人可以帮助解决这个问题.将粘贴我的代码.有人可以帮我解决这个问题.
forgotPassword.html()
def forgotPassword(request):
if request.POST:
email=request.POST.get("email")
user = UniversityDetails.objects.get(email=email)
if(not user):
print "No user"
return render_to_response("forgotPassword.html")
else:
newPassword = user.password
send_mail('Password Recovery', 'The password for your site is '+ newPassword, 'rv_nair@gmail.com',
['rv_ks@gmail.com'], fail_silently=False)
return render_to_response("passwordRecovery.html")
return render_to_response('forgotPassword.html')
Run Code Online (Sandbox Code Playgroud)
HTML
<form name="forgotPassword" method="POST" id="myFormid" action="http://10.1.0.90:8080/forgotPassword/">
<div style="float:center;width:100%;color:#0000A0">
Enter your E-mail ID</label><br/> <input type="text" name="email" size="25" />
<input type="submit" value="Submit" />
</div>
</form >
Run Code Online (Sandbox Code Playgroud) 我在默认情况下创建了一些用户,fixtures/initial_data.json以便进行一些测试"主题".我遇到的问题是密码生成.我可以在"字段"中设置密码,但这不会生成哈希密码:
[
{ "model": "auth.user",
"pk": 1,
"fields": {
"username": "user1",
"password": "password"
}
}
]
Run Code Online (Sandbox Code Playgroud)
我需要一种方法来生成用户的密码.我是否必须手动执行此操作并生成{hash_method}${salt}${hashed_password}类似Django 的字符串?
我有一个很简单的问题需要解决.我有合作伙伴模型,其中有> = 0个与之关联的用户:
class Partner(models.Model):
name = models.CharField(db_index=True, max_length=255)
slug = models.SlugField(db_index=True)
user = models.ManyToManyField(User)
Run Code Online (Sandbox Code Playgroud)
现在,如果我有一个User对象并且我有一个Partner对象,那么检查User是否与Partner关联的最Pythonic方法是什么?我基本上想要一个语句,如果User与之关联,则返回True Partner.
我试过了:
users = Partner.objects.values_list('user', flat=True).filter(slug=requested_slug)
if request.user.pk in users:
# do some private stuff
Run Code Online (Sandbox Code Playgroud)
这有效,但我感觉有更好的方法.另外,这很容易卷入装饰器,请记住我需要一个命名参数(slug)和一个请求对象(user).
任何帮助将非常感激.
为了在注册用户后对其进行签名,我手动设置了user.backend属性.它通常适用于我的观点.在这个例子中,我试图通过AJAX注册用户.它引发了一个AttributeError.
这是我的代码:
def register_async(request):
if request.method=='POST':
userform=MyUserCreationForm(request.POST)
if userform.is_valid():
#username of <30 char is required by Django User model. I'm storing username as a hash of user email
user=userform.save(commit=False)
user.username=hash(user.email)
user.backend='django.contrib.auth.backends.ModelBackend'
user.save()
auth.login(request,user)
user_status=1
user_fname=user.first_name
user_data=[{'user_status':user_status, 'user_fname':user_fname}]
json_data=json.dumps(user_data)
response=HttpResponse()
response['Content-Type']="text/javascript"
response.write(json_data)
return response
else:
user_data=[{'user_status':"0"}]
json_data=json.dumps(user_data)
response=HttpResponse()
response['Content-Type']="text/javascript"
response.write(json_data)
return response
else:
return HttpResponse()
Run Code Online (Sandbox Code Playgroud)
编辑 - 这里是AJAX.它看起来很漂亮
//ajax registration.
$('input#register_submit').click(function(event){
$(this).attr('disabled','disabled');
$('<div class="register-animation"><img src="{{site}}media/ajax-loader3.gif"/></div>').appendTo('#register_modal_btn');
$.post("/register/", $('div#register_side form').serialize(),
function(data){
$.each(data,function(){
if(this.user_status==1){
$('.register-animation').remove();
$('.right_section .top').html('<ul><li class="sep_nav">Hi, '+ this.user_fname + '</li><li class="sep+nav"><a href="http://nabshack.com/logout/">Log …Run Code Online (Sandbox Code Playgroud) 我有一个小网站,有一些用户,我想在我的一个模型(以及表格)中添加一个字段.问题是syncdb当然不会触及现有的模型,我想弄清楚如何将此字段添加到模型/表中而无需重新填充整个事物.
例:
class Newspaper(models.Model):
name = models.CharField()
class UserProfile(models.Model):
user = models.ForeignKey(user, unique=True)
reads = models.ManyToManyField(Newspaper)
Run Code Online (Sandbox Code Playgroud)
现在,我想blank=True在Newspaper不破坏用户配置文件的情况下向模型添加URL字段().
有任何想法吗?
我有两个这样的模型:
class User(models.Model):
email = models.EmailField()
class Report(models.Model):
user = models.ForeignKey(User)
Run Code Online (Sandbox Code Playgroud)
实际上,每个模型都有更多的字段,这些字段与此问题无关.
我想过滤所有拥有以"a"开头并且没有报告的电子邮件的用户.将有更多.filter()和.exclude()基于其他领域的标准.
我想这样做:
users = User.objects.filter(email__like = 'a%')
users = users.filter(<other filters>)
users = ???
Run Code Online (Sandbox Code Playgroud)
我想要 ???过滤掉没有与之关联的报告的用户.我该怎么做?如果这不可能像我提出的那样,那么另一种方法是什么?