我有一个问题.在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" 有关系.谢谢.
我有几页.对于每个页面,我需要加载唯一的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'.怎么解决?
我已经将我的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 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)
如何解决?
谢谢!
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
.
如何解决?
谢谢!
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
.
我看了这个,但它对我没有帮助.
如何解决?
谢谢!
我想用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)
为什么文件大小如此之大?
该文件大小是否正常?
我想在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) 我有简单的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) 当我使用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)
但我在控制台只有 …