小编Pro*_*eus的帖子

Django:列表中的外键值显示admin

我正在尝试在管理列表视图中显示外键"公司名称".但是,列表视图只显示公司的(无).我做错了什么?

admin.py

class CampaignAdmin(admin.ModelAdmin):
    #fields = ['name', 'Company_name', 'active', 'modified', 'created']
    list_display = ['name', 'related_company', 'active', 'modified', 'created']
    list_filter = ['active']
    search_fields = ['name']
    sortable_field_name = "name"
    autocomplete_lookup_fields = {
        'name': ['name'],
        }

    def related_company(self, obj):
        return '%s'%(obj.Company.name)
    related_company.short_description = 'Company'


admin.site.register(Campaign, CampaignAdmin)
Run Code Online (Sandbox Code Playgroud)

model.py

class Company(models.Model):
    companyid = models.CharField(max_length=255, primary_key=True, db_column='companyID')
    name = models.CharField(max_length=105)
    logourl = models.CharField(max_length=255, db_column='logoURL')
    website = models.CharField(max_length=255, blank=True)
    active = HibernateBooleanField(default=False)
    created = models.DateTimeField()
    modified = models.DateTimeField(null=True, blank=True)

    class Meta:
        db_table = u'company'
        ordering = ['name'] …
Run Code Online (Sandbox Code Playgroud)

python django django-admin

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

在supervisord中设置环境变量时出现Python Key Error

我在supervisord中设置了一个环境变量:

[program:worker]
directory = /srv/app/
command=celery -A tasks worker -Q default -l info -n default_worker.%%h
environment=BROKER="amqp://admin:password@xxxxx:5672//"
Run Code Online (Sandbox Code Playgroud)

在我的celeryconfig.py中,然后尝试读取这样的变量.

BROKER = os.environ['BROKER']
Run Code Online (Sandbox Code Playgroud)

但我仍然得到下面的错误,为什么?

  File "/usr/local/lib/python2.7/dist-packages/celery/loaders/base.py", line 106, in import_module
    return importlib.import_module(module, package=package)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/srv/app/celeryconfig.py", line 6, in <module>
    BROKER = os.environ['BROKER']
  File "/usr/lib/python2.7/UserDict.py", line 23, in __getitem__
    raise KeyError(key)
KeyError: 'BROKER
Run Code Online (Sandbox Code Playgroud)

根据评论中的建议,有一个envs的文件转储:

{
    'SUPERVISOR_GROUP_NAME': 'celery_default_worker',
    'TERM': 'linux',
    'SUPERVISOR_SERVER_URL': 'unix: ///var/run/supervisor.sock',
    'UPSTART_INSTANCE': '',
    'RUNLEVEL': '2',
    'UPSTART_EVENTS': 'runlevel',
    'PREVLEVEL': 'N',
    'SUPERVISOR_PROCESS_NAME': 'celery_default_worker',
    'UPSTART_JOB': 'rc',
    'PWD': '/',
    'SUPERVISOR_ENABLED': …
Run Code Online (Sandbox Code Playgroud)

python django celery supervisord

10
推荐指数
2
解决办法
1892
查看次数

在部署时动态更改dockerrun.aws.json图像标记

有没有办法动态从我的__init__.py文件中获取版本标签,并将其附加到dockerrun.aws.json图像名称,例如::

{
  "AWSEBDockerrunVersion": "1",
  "Authentication": {
    "Bucket": "dockerkey",
    "Key": "mydockercfg"
  },
  "Image": {
    "Name": "comp/app:{{version}}",
    "Update": "true"
  },
  "Ports": [
    {
      "ContainerPort": "80"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

当我这样做的eb deploy时候会构建正确的版本.目前,我必须继续修改每个部署的json文件.

python amazon-web-services docker amazon-elastic-beanstalk

10
推荐指数
1
解决办法
735
查看次数

Django管理员下载了1000个用户

假设:我有一个名为Car的模型,它与一个用户有关.我担心的是默认的Django Admin.我通过下拉列表将用户分配给汽车(这是默认的Django行为,所以我被告知).

如果我有1000多个用户可以从下拉菜单中选择,会发生什么.管理员是否处理此问题,如果是这样的话?

django django-admin

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

如何在没有任何理由的情况下阻止TastyPie执行UPDATE查询?

我在申请中看到了一些常见的事情.当我很少或没有流量时,我的服务器无缘无故地放慢速度.经过大量的试验和错误后,我发现当我删除了ToOneField我的TastyPie资源时,我的问题就消失了!

我发现的是由于一些未知的原因,TastyPie正在这些ToOneFields上进行数据库更新,这是没有充分理由的!什么......时刻!

在此输入图像描述

我在这里发现了一个可能的错误,声称修复了更新问题.我已经安装了最新版本,pip但仍然看到了这个问题.

有人可以帮忙吗?

class IncentiveResource(ModelResource):
    product_introducer = fields.ToOneField(ProductResource, 'referrer_product', full=True)
    product_friend = fields.ToOneField(ProductResource, 'referee_product', full=True)

    class Meta:
        queryset = Incentive.objects.all().order_by('-date_created')
        resource_name = 'incentive'
        allowed_methods = ['get']
        authentication = MultiAuthentication(ClientAuthentication(), ApiKeyAuthentication())
        authorization = Authorization()
        filtering = {
            "active": ALL,
        }
        always_return_data = True
        cache = SimpleCache(cache_name='resources', timeout=10)
Run Code Online (Sandbox Code Playgroud)

这里交通很少,但变得无法使用. 在此输入图像描述 在此输入图像描述

python django tastypie

9
推荐指数
1
解决办法
230
查看次数

使用PIP安装包装时跳过错误

我跑了一下

pip install -r /requirements.txt
Run Code Online (Sandbox Code Playgroud)

如果我的一个软件包出现故障,整个过程就会中止,并且不会安装任何其他软件包.

是否有一个命令,如果发生错误,它将继续安装下一个包?

所以对于我的用例:这是我使用fab文件做的事情:

def _install_requirements():
    """
    Installs the required packages from the requirements.txt file using pip.
    """

    if not exists(config.SERVER_PROJECT_PATH + '/requirements.txt', use_sudo=True):
        print('Could not find requirements')
        return
    sudo('pip install -r %s/requirements.txt' % SERVER_PROJECT_PATH)
Run Code Online (Sandbox Code Playgroud)

python

9
推荐指数
1
解决办法
3984
查看次数

Django模型:始终由用户过滤

我如何实现以下....

每次点对象显示在模板中时,它必须始终由当前用户过滤.所以,在模型中我尝试了下面的代码.

这可能吗?我怎样才能实现上述目标?

Models.py

from django.db import models
from django.contrib.auth.models import User


POINTS_PENDING, POINTS_ADDED, POINTS_DEDUCTED, ORDER_PROCESSING = range(4)
STATUS_OPTIONS = (
    (POINTS_PENDING, ('Pending')),
    (POINTS_ADDED, ('Added')),
    (POINTS_DEDUCTED, ('Deducted')),
    (ORDER_PROCESSING, ('Processing')),
    )


class PointsManager(models.Manager):

    def points_list(self,User):
        list = Points.objects.filter(points_user=User).exclude(status=ORDER_PROCESSING)
        return list


class Points (models.Model):
    user = models.ForeignKey(User)
    points = models.IntegerField(verbose_name=("Points"), default=0)
    created = models.DateTimeField(("Created at"), auto_now_add=True)
    updated = models.DateTimeField(verbose_name=("Updated at"), auto_now=True)

    objects = PointsManager()
Run Code Online (Sandbox Code Playgroud)

python django django-models

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

Django Rest Framework 不会让我拥有多个权限

我的 Django Rest Framework 和权限有问题。例如,DRF 不会让我对我的视图拥有多个权限。

如果我以管理员用户身份登录 API,则可以使用以下 mixin 访问:

class PermissionMixin(object):
    permission_classes = (permissions.IsAdminUser)
Run Code Online (Sandbox Code Playgroud)

现在,如果我添加第二个权限 mixin:

class PermissionMixin(object):
    permission_classes = (permissions.IsAdminUser, TokenHasReadWriteScope)
Run Code Online (Sandbox Code Playgroud)

管理员用户被拒绝访问。应该发生的是管理员用户和具有令牌的用户都可以访问,但是现在只有 TokenHasReadWriteScope 用户可以访问。

有没有其他人遇到过这个问题,这是怎么回事?

我需要两种类型的用户都可以访问。

这是我的观点:

class SomeList(PermissionMixin, generics.ListCreateAPIView)

    queryset = Award.objects.all()
    serializer_class = AwardSerializer
Run Code Online (Sandbox Code Playgroud)

PS TokenHasReadWriteScope 来自django-oauth-toolkit

python django django-rest-framework

8
推荐指数
2
解决办法
3522
查看次数

在DRF中支持JSON和文件分段上传的测试

我想为我的DRF应用程序编写测试,该应用程序使用multipart发布json和文件.

这是我到目前为止所尝试的但是collection_items(在create方法中) 是空白的.我是否需要修改我的视图以使其正常工作,或者我在下面的测试用例中做错了什么?

我的测试:

    image = Image.new('RGB', (100, 100))
    tmp_file = tempfile.NamedTemporaryFile(suffix='.jpg')
    image.save(tmp_file)

    files = {"collection_items": [{"image": tmp_file}]}
    payload = json.dumps({
        "title": "Test Collection",
    })

    self.api_factory.credentials(Authorization='Bearer ' + self.token)
    response = self.api_factory.post(url, data=payload, files=files, format='multipart')
Run Code Online (Sandbox Code Playgroud)

这是模型:

class Collection(models.Model):

    title = models.CharField(max_length=60)
    collection_items = models.ManyToManyField('collection.Item')


class Item(models.Model):
    image = models.ImageField(upload_to="/",null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

串行器:

class ItemCollectionDetailSerializer(serializers.ModelSerializer):
    class Meta:
        model = Item
        fields = ('id', 'image')
        read_only_fields = ('image',)


class CollectionListSerializer(serializers.ModelSerializer):

    url = serializers.HyperlinkedIdentityField(view_name='col_detail')
    collection_items = ItemCollectionDetailSerializer(many=True, …
Run Code Online (Sandbox Code Playgroud)

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

8
推荐指数
1
解决办法
1865
查看次数

如何使用 Django 过滤器添加初始/默认值?

使用Django 过滤器时如何添加初始/默认值?

例如,这样的事情 initial=False

class UserFilter(django_filters.FilterSet):
    archive = django_filters.BooleanFilter(initial=False)

    class Meta:
         model = User
         fields = ['archive']
Run Code Online (Sandbox Code Playgroud)

我已经厌倦了覆盖,__init__但这似乎不起作用。

python django

8
推荐指数
2
解决办法
6875
查看次数