小编Shi*_*dla的帖子

使用django中的聚合获取最小值字段名称

我有一个模型,下面有一些字段

class Choclate(models.Model):
    name = models.CharField(max_length=256)
    price = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

所以我想获得具有该lowest price 值的字段名称,因此为了获得该lowest price值,我们可以像下面这样使用Aggregations

from django.db.models import Avg, Max, Min

choclates = Choclate.objects.all()
lowest_price = choclates.aggregate(Min('price'))
Run Code Online (Sandbox Code Playgroud)

那么最后如何获得field name与django中最低价格相关的?

python django min django-aggregation

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

您的数据库django没有南数据库模块'south.db.postgresql_psycopg2'

我有一个版本的django应用程序1.6.5,我正在尝试将其升级到1.8,但是在django版本增加到之后我就得到了以下错误1.8

There is no South database module 'south.db.postgresql_psycopg2' for your database. Please either choose a supported database, check for SOUTH_DATABASE_ADAPTER[S] settings, or remove South from INSTALLED_APPS.
Run Code Online (Sandbox Code Playgroud)

INSTALLED_APPS = [
   'django_messages',
    'avatar',
    'tinymce',
    'south',
    'tracking',
    ......
  ]

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'HOST': '127.0.0.1',
        'NAME': 'xxxxxx',
        'USER': 'xxxxxx',
        'PASSWORD': 'xxxxxx',
        },
    }
Run Code Online (Sandbox Code Playgroud)

那么问题是什么以及需要做些什么才能解决这个问题呢?

我甚至尝试使用以下设置并在运行django本地服务器时收到相同的错误

SOUTH_DATABASE_ADAPTERS = {
    'default': "south.db. postgresql_psycopg2"
}
Run Code Online (Sandbox Code Playgroud)

django postgresql psycopg2 django-south

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

在LAN系统中访问django项目

我使用django并开发了一个工作正常的网站,它即将投入生产并准备好在几周内部署.

因此,在转向生产之前,我希望与我的一些员工共享该网站,以检查功能和其他内容.实际上他们的系统在局域网中与我的系统连接.

所以我的系统IP地址是这样的192.168.12.135,当我们运行运行django开发服务器运行时localhost:8000,我的意思是系统IP地址和一个8000 类似的端口192.168.12.135:8000.

所以我已经将项目站点链接分享为192.168.12.135:8000,但是当他们尝试在LAN中连接的系统时,它无法访问并显示错误Server not found.

我尝试了上述相同的方式,因为最近我使用python web.py框架并开发了一个最小的站点,当我们运行服务器时,它默认运行为localhost:8080,当我从其他系统访问此链接时,在局域网中连接我的192.168.12.135:8000,因为工作正常,可以访问.

所以任何人都可以让我知道

1. How to access the site on the systems that are connected in LAN before moving to production(in some real servers like apache, nginx etc.,).

2. Basically i am new to web developing and this is my first site developed in python, so
   i don't know more about servers and deploying a project. So …
Run Code Online (Sandbox Code Playgroud)

python django lan

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

为django TextField添加富文本格式功能

我有一个django模型,其中包含一个description字段:

class Product(models.Model):
    name = models.CharField(max_length="125")
    description = models.TextField()

class ProductForm(ModelForm):
    class Meta:
        model = Product
    def __init__(self, *args, **kwargs):
        super(ProductForm, self).__init__(*args, **kwargs)
        self.fields['description'].widget.attrs = { 'placeholder':'Description', 'rows':'10'}
Run Code Online (Sandbox Code Playgroud)

我正在渲染如下

<html>
  <body>
     {{form.name}}
     {{form.description | linebreaks}}  
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

因此,使用上面的过滤器,linebreaks我可以将数据作为行格式化,但现在我想在描述字段中给出一个URL(www.google.co.in),它应该是一个可点击的前端product detail page

如何在前端的django描述字段中添加富文本格式?

django text-formatting field-description

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

如何在django UpdateView中更改/更改发布数据

我正在使用django更新视图来model/records编辑下面的内容

class EditProductView(LoginRequiredMixin, UpdateView):
    model = Product
    def get_template_names(self):

        return ['website/product/edit_product.html']

    def get_success_url(self):

        return reverse('product_details', args=[self.kwargs['pk']])

    def get_context_data(self, **kwargs):
        publisher = Publisher.objects.get(product__id=self.kwargs['pk']) 
        context = super(EditProductView, self).get_context_data(**kwargs)
        context.update(
           {
            'publisher':publisher,
            }
          )
        return context        

edit_product =  EditProductView.as_view()   
Run Code Online (Sandbox Code Playgroud)

所以我想要/想要做的就是POST在提交表单之前改变(添加一些数据,根据网站功能编辑已提交的数据)数据,

所以我知道UpdateView有一些方法def def post(self, request, *args, **kwargs):,但我不确切知道如何使用它

假设下面是我得到的request.POST数据

<QueryDict: {u'product_name': [u'Biscuit'], u'product_price': [u'1000'], u'product_tag': [u'']}>
Run Code Online (Sandbox Code Playgroud)

所以现在我想改变上面的内容QueryDict,如果值为product_tag空,我需要指定一些默认值并提交最新的querdict

我也知道Querydict是可变的,但是因为我确实需要编辑POST数据,之前submitting/saving to database,我需要将该querydict作为dict,然后编辑它,然后转换回querdict

毕竟我的问题是什么

  1. 在提交/保存到数据库之前,我们如何更改POST数据UpdateView
  2. post方法是否有效?

django post request django-class-based-views

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

将django升级到1.6.5后,django对象不是JSON可序列化错误

我有一个django应用程序,它运行在1.4.2版本上,工作完全正常,但最近我更新到django 1.6.5并面临一些奇怪的错误,如下

实际上我在我的网站功能的用户/客户注册过程中得到这个

Request URL:    http://example.com/client/registration/
Django Version:     1.6.5
Exception Type:     TypeError
Exception Value:    <Client: test one> is not JSON serializable
Exception Location:     /usr/lib/python2.7/json/encoder.py in default, line 184
Python Executable:  /home/user/.virtualenvs/test_proj/bin/python
Python Version:     2.7.5
Run Code Online (Sandbox Code Playgroud)

追溯

Traceback:
File "/home/user/.virtualenvs/test_proj/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  199.                 response = middleware_method(request, response)
File "/home/user/.virtualenvs/test_proj/local/lib/python2.7/site-packages/django/contrib/sessions/middleware.py" in process_response
  38.                     request.session.save()
File "/home/user/.virtualenvs/test_proj/local/lib/python2.7/site-packages/django/contrib/sessions/backends/db.py" in save
  57.             session_data=self.encode(self._get_session(no_load=must_create)),
File "/home/user/.virtualenvs/test_proj/local/lib/python2.7/site-packages/django/contrib/sessions/backends/base.py" in encode
  87.         serialized = self.serializer().dumps(session_dict)
File "/home/user/.virtualenvs/test_proj/local/lib/python2.7/site-packages/django/core/signing.py" in dumps
  88.         return json.dumps(obj, separators=(',', ':')).encode('latin-1')
File "/usr/lib/python2.7/json/__init__.py" in …
Run Code Online (Sandbox Code Playgroud)

python django json jsonserializer django-jsonfield

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

强制浏览器在chrome,firefox上打印背景图像

我有一个网页,其中包含一些背景图像和CSS颜色,但当我使用ctrl + p其显示页面打印页面打印预览没有CSS和背景颜色.

我有一个div具有内联样式属性的元素(因为div的背景图像将在编码中使用for循环动态选择),如下所示

<div class='assessment' style='background-image: url('/static/images/print_%s.png')' >
    <p></p>
    <p></p>
</div>
Run Code Online (Sandbox Code Playgroud)

所以我在这里读了一些东西,我们可以编写print mediacss来使背景图像和颜色默认可见

@media print {
.assessment {
   visble:visible;
  }
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何用style='background-image: url('/static/images/print_%s.png')我在上面的div中的内联css()来编写这个媒体css

那么如何使用内联css编写媒体css,以便在某些点击时默认情况下在打印预览中显示背景图像ctrl+p

html javascript css firefox google-chrome

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

在python中使用pip的pylibmc安装错误

我试图在我的虚拟环境中使用pip安装pylibmc并获得以下错误

pip install pylibmc
Downloading/unpacking pylibmc
  Downloading pylibmc-1.3.0.tar.gz (49kB): 49kB downloaded
  Running setup.py egg_info for package pylibmc

    warning: no files found matching 'LICENSE'
    warning: no files found matching 'runtests.py'
    warning: no files found matching '*.py' under directory 'pylibmc'
Installing collected packages: pylibmc
  Running setup.py install for pylibmc
    building '_pylibmc' extension
    x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DUSE_ZLIB -I/usr/include/python2.7 -c src/_pylibmcmodule.c -o build/temp.linux-x86_64-2.7/src/_pylibmcmodule.o -fno-strict-aliasing
    In file included from src/_pylibmcmodule.c:34:0:
    src/_pylibmcmodule.h:42:36: fatal error: libmemcached/memcached.h: No such file or …
Run Code Online (Sandbox Code Playgroud)

python django installation pip

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

使用urllib2请求URL时,为什么会出现"HTTP错误405:方法不允许"?

我在python中使用urllib2和urllib库

假设我有以下代码

import urllib2
import urllib

url = 'http://ah.example.com'
half_url = u'/servlet/av/jd?ai=782&ji=2624743&sn=I'

req = urllib2.Request(url, half_url.encode('utf-8'))
response = urllib2.urlopen(req)
print response
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,我收到以下错误

Traceback (most recent call last):
  File "example.py", line 39, in <module>
    response = urllib2.urlopen(req)
  File "/usr/lib64/python2.7/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib64/python2.7/urllib2.py", line 398, in open
    response = meth(req, response)
  File "/usr/lib64/python2.7/urllib2.py", line 511, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib64/python2.7/urllib2.py", line 436, in error
    return self._call_chain(*args)
  File "/usr/lib64/python2.7/urllib2.py", line 370, …
Run Code Online (Sandbox Code Playgroud)

python urllib urllib2

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

如何在python中用空字符串替换反斜杠字符

我正在尝试使用以下代码替换字符串中的反斜杠'\'

string = "<P style='TEXT-INDENT'>\B7 </P>"

result = string.replace("\",'')
Run Code Online (Sandbox Code Playgroud)

结果:

------------------------------------------------------------
   File "<ipython console>", line 1
     result = string.replace("\",'')
                                     ^
SyntaxError: EOL while scanning string literal
Run Code Online (Sandbox Code Playgroud)

在这里我不需要反斜杠,因为实际上我正在解析一个xml文件,它有一个上述格式的标签,所以如果反斜杠在那里,它会invalid token在解析过程中显示

我可以知道如何在python中用空字符串替换反斜杠

python replace

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