标签: django-models

交易模块对象没有原子属性

我无法弄清楚这一点。我不断收到“模块”对象在事务对象上没有属性“原子”。不知道为什么突然就破了。我不记得了,但我可能已经更新了我的 django 服务器版本。

from django.db import transaction

@receiver(post_save, sender=User)
def saveUserAndInfo(sender, instance, **kwargs):
    user = instance
    try:
        with transaction.atomic():
            user.user_info.save()
    except UserInfo.DoesNotExist:
        info = UserInfo()
        info.user = user
        info.save()
Run Code Online (Sandbox Code Playgroud)

追溯:

File "/home2/univetg1/python27/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  115.                         response = callback(request, *callback_args, **callback_kwargs)
File "/home2/univetg1/lunchbox/userinfo/views.py" in facebookLogin
  190.                 login(request, user)
File "/home2/univetg1/python27/lib/python2.7/site-packages/django/contrib/auth/__init__.py" in login
  95.     user_logged_in.send(sender=user.__class__, request=request, user=user)
File "/home2/univetg1/python27/lib/python2.7/site-packages/django/dispatch/dispatcher.py" in send
  170.             response = receiver(signal=self, sender=sender, **named)
File "/home2/univetg1/python27/lib/python2.7/site-packages/django/contrib/auth/models.py" in update_last_login
  31.     user.save(update_fields=['last_login'])
File "/home2/univetg1/python27/lib/python2.7/site-packages/django/db/models/base.py" in save
  546.                        force_update=force_update, update_fields=update_fields)
File "/home2/univetg1/python27/lib/python2.7/site-packages/django/db/models/base.py" …
Run Code Online (Sandbox Code Playgroud)

django django-models

0
推荐指数
1
解决办法
3159
查看次数

如何区分网站普通用户和高级用户的功能

我正在django制作一个网站。我的网站将包含付费非付费内容。我不知道如何仅为付费用户开放某些功能,也不知道如何保护我的高级数据免受非付费用户的侵害。我能想到的可能的解决方案是:

  • 为付费和非付费用户创建单独的数据库。
  • 当用户在网站上注册时标记权限。
  • 为付费和非付费用户制作不同的模型。
  • 定义不同的视图。

请帮我。我知道对某些人来说这将是一个新手问题,但我一直坚持这个问题,我不知道如何继续。

python database django django-models web

0
推荐指数
1
解决办法
673
查看次数

Django 中的多对多关系可以有两个外键吗?

我有两个模型,公司模型和合同模型。每份合同都是两家公司之间的。现在,公司和合同之间似乎存在多对多的关系,例如,一家公司可以有许多合同,而一份合同是在多个公司之间进行的。它是否正确?如果是,如何在 Django 中指定?是通过一个模型中的两个外键吗?

class Company(models.Model):
    company_name = models.CharField(max_length = 30)
    address = models.CharField(max_length = 100)
    website = models.CharField(max_length = 30)
    email = models.EmailField(max_length = 30)

class Contract(models.Model):
    company_1 = models.ForeignKey(Company, related_name="%(app_label)s_%(class)s_related_company1")
    company_2 = models.ForeignKey(Company, related_name="%(app_label)s_%(class)s_related_company2")
    company = models.ManyToManyField(Company)
    contract_date = models.DateField()
    consideration = models.DecimalField(max_digit =10, decimal_places = 2)
Run Code Online (Sandbox Code Playgroud)

django django-models

0
推荐指数
1
解决办法
954
查看次数

如何显示评分最高的 5 位用户?姜戈

我想显示评分最高的 5 位用户。然而,它们目前没有显示有序,当我向用户添加两个评级时,它会出现两次,而不是计算平均值并放在正确的位置。

这些是模型:

# this is model for user
class UserProfile(models.Model):
    user = models.OneToOneField(User, related_name='profile')
    profilepic = models.ImageField(blank=True)
    city = models.ForeignKey(City)
    slug = models.SlugField(unique=True)


    def save(self, *args, **kwargs):
        # Uncomment if you don't want the slug to change every time the name changes
        self.slug = slugify(self.user.username)
        super(UserProfile, self).save(*args, **kwargs)

    def __unicode__(self):
        return self.user.username

# this is the model for user ratings - one to many relationship with User
class UserRating(models.Model):
    user = models.ForeignKey(User)
    comment = models.CharField(max_length=500)
    rating = models.IntegerField(default=5) …
Run Code Online (Sandbox Code Playgroud)

django django-templates django-models django-views

0
推荐指数
1
解决办法
136
查看次数

django从数据库中搜索两个日期之间的日期时间

我正在尝试从数据库中搜索并列出两个日期之间的内容,但不知道该怎么做?这

模型.py

...
class ProductsTbl(models.Model):
    created = models.DateTimeField(editable=False)
...
Run Code Online (Sandbox Code Playgroud)

视图.py

def search(request):
    error = False
    if 'q1' and 'q2'in request.GET:
        q = request.GET['q1','q2']
        if not q:
            error = True
        else:
            books = ProductsTbl.objects.filter(created__range=q)
            return render(request, 'search_results.html',
                {'books': books, 'query': q})
    return render(request, 'search_form.html', {'error': error})
Run Code Online (Sandbox Code Playgroud)

我在这里查找了stackoverflow但不明白该怎么做

我应该在 models.py 中再添加一个 DateTimeField 来帮助搜索吗?

实际上我可以在 python manage.py shell 中做到这一点,但我怎样才能让它在网络上工作? 在此输入图像描述

我的

搜索表单.html

<form action="" method="get">
<table style="width:30%">
<tr>
<td><input type="text"  class="datepicker" name="q1"> </td>
<td style="width:5%"> between </td>
<td><input type="text"  class="datepicker" name="q2"></td>
<br> …
Run Code Online (Sandbox Code Playgroud)

django django-models django-views

0
推荐指数
1
解决办法
4629
查看次数

django 迁移不会将定义的模型类中的所有字段创建到数据库中

嗨,我正在尝试生成迁移,但没有在数据库中创建所有字段。下面是我的代码。

from django.db import models

class News(models.Model):
    author = models.CharField(max_length = 100),
    content = models.CharField(max_length= 100),
    description = models.TextField(default= "")

    def __str__(self):
        return self.author

    class Meta:
        db_table = "news"


class SportNews(models.Model):
    author = models.CharField(max_length = 100),
    content = models.CharField(max_length = 100),
    description = models.TextField(default = "")

    def __str__(self):
        return self.author

    class Meta:
        db_table = "sports_news"
Run Code Online (Sandbox Code Playgroud)

python django django-models python-3.x

0
推荐指数
1
解决办法
101
查看次数

如何将本地 Django sqlite3 数据与 Heroku 的 postgres 数据库同步?

我有一个由 Heroku 服务的 Django 网站,其中有一个模型存储有关我过去工作过的项目的数据。我已经跑了makemigrations,并migrate在当地力推的Heroku与Git和运行前heroku run python3 manage.py migrate。因此,我的数据库模型和字段已同步,但我询问的是字段。每当我在本地更新模型实例的字段值时,我希望它(数据)与Heroku同步,反之亦然——同步我在管理面板中的Heroku上更新的值与本地sqlite3 数据库。是否有用于更新数据库本身值的命令,还是我遗漏了什么?因为过去一个小时我在互联网上到处寻找如何做这件事,但我找不到执行它的命令。

旁注:我还想要我正在寻找的命令来同步新创建的实例,而不仅仅是现有模型实例的数据。

django heroku django-models heroku-postgres

0
推荐指数
1
解决办法
1213
查看次数

Django DateInput() 小部件在 ModelForm 中不起作用

我正在使用从 AbstractUser 派生的 CustomUser 模型制作用户登录表单,并带有一个额外的字段:date_of_birth。我使用 CreateView 来生成表单。所有字段都显示出来,密码字段按预期使用密码小部件(显示点而不是字符),但日期字段没有(没有格式或日历的纯字符字段)。我在看什么?

模型.py:

from django.urls import reverse
from django.contrib.auth.models import AbstractUser

# Create your models here.
class CustomUser(AbstractUser):
    date_of_birth = models.DateField(verbose_name="Date of Birth", blank=True, null=True)

    def get_absolute_url(self):
        return reverse('index')
    def __str__(self):
        return self.username
Run Code Online (Sandbox Code Playgroud)

表格.py:

from .models import CustomUser


class CustomUserForm(forms.ModelForm):
    class Meta:
        model = CustomUser
        fields = ["username", "password", "first_name", "last_name", "email", "date_of_birth"]
        widgets = {
            "password": forms.PasswordInput(),
            "date_of_birth": forms.DateInput()
        }
Run Code Online (Sandbox Code Playgroud)

视图.py:

from django.views.generic.edit import CreateView
from .models import CustomUser
from .forms import CustomUserForm

# …
Run Code Online (Sandbox Code Playgroud)

django django-models django-forms django-views

0
推荐指数
1
解决办法
1604
查看次数

仅限 API 的 Django 项目的项目结构

我想创建一个基于 Django 的后端,提供一个仅使用django-rest-framework的 API 。管理界面是我最终用户需要的唯一可视化界面。API 应由 JS 前端使用/集成。后端由几个部分组成类似的配置可视化等。根据设计我会首先创建一个Django项目的最佳实践my_projectdjango-admin startproject my_project .和每个部分与添加应用程序python manage.py startapp configurationpython manage.py startapp visualization等等(在Django的休息框架快速入门产生有一个 Django 应用程序。)

对我来说,我不清楚如何采用 Django 设计最佳实践,将应用程序用于基于 RESTful API 的 JS 前端集成。如果我想将后端与 JS 前端集成,我应该如何构建我的代码库?我是否应该创建应用程序configurationvisualization...(我不创建基于模板的视图)并使用单个 RESTful API 定义相应的模型。我应该在哪里放置与项目结构相关的 API 源代码?我应该如何将 API 映射到模型?

django django-models python-3.x django-rest-framework

0
推荐指数
1
解决办法
1492
查看次数

如何在 objects.get() 函数中设置动态字段名称

我想创建一个 mixin,允许我get按如下方式更改函数的字段:

class MyMixin(self):

    myfield = 'field1' 

    def myfunct(self):

        i = MyModel.objects.get(self.myfield=myvar)
Run Code Online (Sandbox Code Playgroud)

这样所需的代码就可以运行了MyModel.objects.get(field1=myvar)

但是,这种方法返回

语法错误:表达式不能包含赋值

如何动态设置这样的字段名称?

django django-models

0
推荐指数
1
解决办法
124
查看次数