标签: django-models

Django - 简单的自定义模板标签示例

我有用户,视频,主题,标准评级

  • 一个视频有一个话题
  • 一个主题标准
  • 一个用户可以创建一个视频对于一个给定话题
  • 一个用户可以评价一个视频上的每个指标分析的关注给定的主题.

你可以看到我的原始帖子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,我想列出指标分析中的视频,并为每个标准显示当前评级值形成用户. …

django django-templates django-models

56
推荐指数
2
解决办法
7万
查看次数

Django - FileField检查是否

我有一个带有可选文件字段的模型

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)

如何检查是否有文件集?

python django django-models

55
推荐指数
1
解决办法
2万
查看次数

Django - 没有这样的表:main.auth_user__old

我正在关注官方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 …

python django django-models python-3.x

55
推荐指数
10
解决办法
3万
查看次数

Django模型字段默认为空

我需要让我的Django应用程序允许我为某个模型字段设置一个默认值NULL.我已经查看了null,blankdefault参数,但是我不太清楚我需要使用哪三种组合来获得所需的效果.我尝试过设置,default=NULL但它犯了一个错误.如果我指定blank=True, null=True并且没有默认值,那么它是否会默认返回NULL来运行时?

python django django-models

54
推荐指数
3
解决办法
5万
查看次数

匹配查询不存在Django中的错误

我在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)

python django django-templates django-models django-views

54
推荐指数
3
解决办法
9万
查看次数

初始数据夹具中的用户

我在默认情况下创建了一些用户,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 的字符串?

django django-models django-authentication

54
推荐指数
5
解决办法
2万
查看次数

Django检查ManyToMany字段中是否有对象

我有一个很简单的问题需要解决.我有合作伙伴模型,其中有> = 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).

任何帮助将非常感激.

django django-models django-views

54
推荐指数
2
解决办法
3万
查看次数

Django-AttributeError'User'对象没有属性'backend'(但......它确实如此?)

为了在注册用户后对其进行签名,我手动设置了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)

authentication django django-models django-authentication

53
推荐指数
2
解决办法
4万
查看次数

将字段添加到现有Django模型

我有一个小网站,有一些用户,我想在我的一个模型(以及表格)中添加一个字段.问题是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=TrueNewspaper不破坏用户配置文件的情况下向模型添加URL字段().

有任何想法吗?

django-models

52
推荐指数
2
解决办法
3万
查看次数

在Django QuerySet中,如何在多对一关系中过滤"不存在"

我有两个这样的模型:

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)

我想要 ???过滤掉没有与之关联的报告的用户.我该怎么做?如果这不可能像我提出的那样,那么另一种方法是什么?

django django-models django-orm

52
推荐指数
4
解决办法
3万
查看次数