小编tim*_*tim的帖子

Django:将auth用户导入模型

我有一个问题.在Django中我创建了一个新模型:

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

class Workers(models.Model):
    user = models.OneToOneField(User, primary_key=True)
        work_group = models.CharField(max_length=20)
        card_num = models.IntegerField()
    def __unicode__(self):
            return self.user
Run Code Online (Sandbox Code Playgroud)

但它不起作用: ImportError: cannot import name user

怎么解决?

所以,我想在db中创建一个新表"workers",它OneToOne与表"auth_user" 有关系.谢谢.

django django-models

78
推荐指数
3
解决办法
7万
查看次数

Django为css加载块

我有几页.对于每个页面,我需要加载唯一的CSS.对于所有静态文件,我使用.在index.html的头部,我有:

{% block css  %}

{% endblock %}
Run Code Online (Sandbox Code Playgroud)

但是,例如,在contact.html中我使用:

{% extends "index.html" %}    
{% block css %}
    <link rel="stylesheet" href="{% static "css/contact.css" %}" type="text/css" />
    {% endblock %}
Run Code Online (Sandbox Code Playgroud)

并且它的打印错误: 无效的块标记:'static',预期'endblock'.怎么解决?

css django static

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

Django 1.5索引页面

我已经将我的django更新为1.5并且我有一个问题:在urls.py中我有

urlpatterns += patterns('django.views.generic.simple',
    (r'^$','direct_to_template', {'template': 'index.html'}),)
Run Code Online (Sandbox Code Playgroud)

在1.4它很好,但今天它错了

"Could not import django.views.generic.simple.direct_to_template. Parent module django.views.generic.simple does not exist."
Run Code Online (Sandbox Code Playgroud)

我在谷歌搜索 - 我发现了这一点,但它在代码中也是如此.请帮忙

django

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

在Django Rest Framework中测试时获取路由器URL名称

我有一些问题.我在Django Rest Framework中使用路由器,我想测试一些api方法.

urls.py中:

router = DefaultRouter()
router.register(r'my-list', MyViewSet, base_name="my_list")

urlpatterns = [
    url(r'^api/', include(router.urls,
                          namespace='api'), ),

]
Run Code Online (Sandbox Code Playgroud)

所以,在tests.py中我想使用像reverse这样的东西.现在我用

response = self.client.get('/api/my-list/')
Run Code Online (Sandbox Code Playgroud)

它是一个硬编码字符串,如果我使用:

response = self.client.get(reverse('api:my_list')
Run Code Online (Sandbox Code Playgroud)

我有一个错误:

django.core.urlresolvers.NoReverseMatch: Reverse for 'my_list' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
Run Code Online (Sandbox Code Playgroud)

如何解决?

谢谢!

python django rest django-rest-framework

24
推荐指数
1
解决办法
7443
查看次数

ModelSerializer django中的所有字段都是休息框架

models.py:

class Car():
    producer = models.ForeignKey(Producer, blank=True, null=True,)
    color = models.CharField()
    car_model = models.CharField()
    doors = models.CharField()
Run Code Online (Sandbox Code Playgroud)

serializers.py:

class CarSerializer(ModelSerializer):

    class Meta:
        model = Car
        fields = Car._meta.get_all_field_names()
Run Code Online (Sandbox Code Playgroud)

所以,我想在这里使用所有字段.但是我有一个错误:

字段名称producer_id对于模型无效Car.

如何解决?

谢谢!

python django django-rest-framework

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

Django REST Framework中的外键值

models.py:

class Station(models.Model):
    station = models.CharField()

class Flat(models.Model):
    station = models.ForeignKey(Station, related_name="metro")
    # another fields
Run Code Online (Sandbox Code Playgroud)

然后在serializers.py中:

class StationSerializer(serializers.ModelSerializer):
    station = serializers.RelatedField(read_only=True)

    class Meta:
        model = Station


class FlatSerializer(serializers.ModelSerializer):
    station_name = serializers.RelatedField(source='station', read_only=True)

    class Meta:
        model = Flat
        fields = ('station_name',)
Run Code Online (Sandbox Code Playgroud)

我有一个错误:

NotImplementedError:RelatedField.to_representation()必须实现.如果要从REST框架版本2升级,则可能需要ReadOnlyField.
我看了这个,但它对我没有帮助.
如何解决?
谢谢!

python django rest django-rest-framework

13
推荐指数
1
解决办法
6331
查看次数

在Docker中的大尺寸的python图像

我想用Docker测试我的应用程序.所以,我在Dockerfile中有这个:

FROM python:3-onbuild
CMD [ "python", "./test.py" ]
Run Code Online (Sandbox Code Playgroud)

test.py:

print(123)
Run Code Online (Sandbox Code Playgroud)

然后我跑:

docker build -t my_test_app .
Run Code Online (Sandbox Code Playgroud)

所以,我有一个大的形象.docker images返回:

REPOSITORY          TAG                 IMAGE ID        CREATED    VIRTUAL SIZE
python              3-onbuild           b258eb0a5195    8 days ago 757 MB
Run Code Online (Sandbox Code Playgroud)

为什么文件大小如此之大?

该文件大小是否正常?

python docker

11
推荐指数
3
解决办法
5427
查看次数

get_absolute_url - Django的站点地图

我想在Django中启用站点地图生成,所以我做了以下内容,如何解释这里

模型:

class Car(models.Model):
    def __unicode__(self):
            return self.name
    name = models.CharField('Name', max_length=10)
    active = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)

网址:

car_dict = {
    'queryset': Car.objects.filter(active=1),
}

sitemaps = {
    #'flatpages': FlatPageSitemap,
    'car': GenericSitemap(car_dict, priority=0.5),
}
Run Code Online (Sandbox Code Playgroud)

但我在/sitemap.xml上有一个错误:'Car'对象没有属性'get_absolute_url.怎么解决?我需要创建一些类,它在这里解释如何?或者我只能使用GenericSitemap?我评论'flatpages',因为我不使用它们.谢谢.

更新1:在URLS.py中:

url(r'^car/$', 'cars.views.shop'),
    url(r'^car/(?P<car_id>\d+)/$', 'cars.views.producer'),
Run Code Online (Sandbox Code Playgroud)

python django

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

在python服务器进程之间共享列表

我有简单的UDPServer,它适用于多处理.

我想创建一个列表,其中包含有关所有客户端的信息.

我使用Manager,但我不明白,如何在列表中添加信息 - 我需要转移Manager的对象来处理,但是如何处理?我的新属性方式不起作用.

import multiprocessing
from socketserver import UDPServer, ForkingMixIn, DatagramRequestHandler
from socket import socket, AF_INET, SOCK_DGRAM
from settings import host, port, number_of_connections

class ChatHandler(DatagramRequestHandler):

    def handle(self):
        cur_process = multiprocessing.current_process()
        data = self.request[0].strip()
        socket = self.request[1]
        ChatHandler.clients.append(self.client_address) # error here
        print(ChatHandler.clients)


class ChatServer(ForkingMixIn, UDPServer):
    pass


if __name__ == '__main__':
    server = ChatServer((host, port), ChatHandler)
    ChatHandler.clients = multiprocessing.Manager().list()
    server_process = multiprocessing.Process(target=server.serve_forever)
    server_process.daemon = False
    server_process.start()
Run Code Online (Sandbox Code Playgroud)

如何解决?谢谢!

输出:

Exception happened during processing of request …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing

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

在Tornado中获取当前用户Async

当我使用get_current_user()时,我需要异步检查Redis中的一些东西(使用tornado-redis).

我正在做以下事情:

def authenticated_async(method):

    @gen.coroutine
    def wrapper(self, *args, **kwargs):
        self._auto_finish = False
        self.current_user = yield gen.Task(self.get_current_user_async)
        if not self.current_user:
            self.redirect(self.reverse_url('login'))
        else:
            result = method(self, *args, **kwargs) # updates
            if result is not None:
                yield result
    return wrapper

class BaseClass():

    @gen.coroutine
    def get_current_user_async(self,):

        auth_cookie = self.get_secure_cookie('user') # cfae7a25-2b8b-46a6-b5c4-0083a114c40e
        user_id = yield gen.Task(c.hget, 'auths', auth_cookie) # 16
        print(123, user_id)
        return auth_cookie if auth_cookie else None
Run Code Online (Sandbox Code Playgroud)

例如,我想使用authenticated_async装饰器:

class IndexPageHandler(BaseClass, RequestHandler):

    @authenticated_async
    def get(self):
        self.render("index.html")
Run Code Online (Sandbox Code Playgroud)

但我在控制台只有 …

python tornado

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