小编Mih*_*fir的帖子

Django ImageField默认

models.py:

class UserProfile(models.Model):

    photo = models.ImageField(upload_to = get_upload_file_name,
                              storage = OverwriteStorage(),
                              default = os.path.join(settings.STATIC_ROOT,'images','generic_profile_photo.jpg'),
                              height_field = 'photo_height',
                              width_field = 'photo_width')
    photo_height = models.PositiveIntegerField(blank = True, default = 0)
    photo_width = models.PositiveIntegerField(blank = True, default = 0)
Run Code Online (Sandbox Code Playgroud)

views.py:

def EditProfile(request):

    register_generator()
    source_file = UserProfile.objects.get(user = request.user).photo

    args = {}
    args.update(csrf(request))
    args.update({'source_file' : source_file})
Run Code Online (Sandbox Code Playgroud)

在我的模板中的某个地方:

{% generateimage 'user_profile:thumbnail' source=source_file %}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:UserProfile匹配查询不存在.

在这一行:

source_file = UserProfile.objects.get(user = request.user).photo
Run Code Online (Sandbox Code Playgroud)

问题是ImageField的默认属性不起作用.因此,对象不是在我的模型中创建的.如何正确使用此属性?如果我省略此属性,则创建对象时没有错误.我需要通过绝对路径还是相对路径?我使用django-imagekit在显示之前调整图像大小:http://django-imagekit.readthedocs.org/en/latest/

python django django-models imagefield django-imagekit

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

d3.js:用glyphicon类附加一个span

以下代码正常工作.它画了一个圆圈.我想要的是在这个圆圈里面绘制一个bootstrap glyphicon:<span class="glyphicon glyphicon-zoom-in"></span>

d3.json("relations", function(error, graph) {
    var links = svg.selectAll()
        .data(graph.links).enter();

    links        
      .append("circle")
      .attr("class", "circle")
      .attr("r", circle_r)
      .attr("cx", function(d) { return d.x; })
      .attr("cy", function(d) { return d.y; });
Run Code Online (Sandbox Code Playgroud)

我试图做以下继续前面的代码:

links .append("span") .attr("class", "glyphicon glyphicon-zoom-in")

但符号不呈现.我想有一些关于定位它的东西,因为使用firebug/inspector我可以看到已经<span>解决了.

有谁知道怎么做?谢谢

d3.js twitter-bootstrap twitter-bootstrap-3

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

Django FileField存储选项

我有这个型号:

class UserProfile(models.Model):
    #..........
    photo = models.ImageField(upload_to = get_upload_file_name,
                              storage = OverwriteStorage(),
                              blank = True, null = True,
                              height_field = 'photo_height',
                              width_field = 'photo_width')
Run Code Online (Sandbox Code Playgroud)

这是我的存储功能:

class OverwriteStorage(FileSystemStorage):
    def _save(self, name, content):
        self.delete(r'.*')
        return super(OverwriteStorage, self)._save(name, content)

    def get_available_name(self, name):
        return name
Run Code Online (Sandbox Code Playgroud)

我该怎么做以下两件事:

  1. 每当用户上传文件(即图像)时,我想删除旧文件,无论名称是否相同.我试图删除任何与上述正则表达式匹配的内容,但这不起作用.

  2. 如果用户上传名为"me.jpg"的图像,我想以不同的方式重命名,具体取决于用户的用户名.所以我会做一些像这样做的事情return super(OverwriteStorage, self)._save(SOMETHING_ELSE_HERE, content)?我可以将其他参数传递给OverwriteStorage函数吗?

还有第三个问题:我为这个表单创建了一个ModelForm.因此用户可以上传图像.因此,当有人按下"选择文件"时,会弹出一个窗口窗口以浏览和选择照片.我怎么才能在这里显示某些文件?(例如,只有.jpg和.jpeg文件)

谢谢!

编辑:get_upload_file_name功能

def get_upload_file_name(instance, filename):
    return "%s/%s/profile_photo/%s" % (instance.user.username[0].lower(), instance.user.username, filename)
Run Code Online (Sandbox Code Playgroud)

编辑2:我已经包含了我的models.py

import datetime
import os
import urllib2, urlparse
import re

from django.db import models
from …
Run Code Online (Sandbox Code Playgroud)

python django django-models filefield imagefield

4
推荐指数
1
解决办法
5764
查看次数

Bootstrap导航栏使单击的选项卡处于活动状态

我读过其他类似的帖子,但我不能让我的工作.我想让点击的标签处于活动状态

所以这是我的bootstrap导航栏在html中的样子:

<div class="navbar navbar-default" role="navigation">
    <div class="container">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a href="/">
          <img src="/static/images/logo.png" alt="Prime Solutions"/>
        </a>
      </div>

      <div class="navbar-collapse collapse">
        <ul class="nav navbar-nav">
          <li class="active"><a href="/"><strong>Acasa</strong></a></li>
          <li><a href="/software"><strong>Software</strong></a></li>
          <li><a href="/hardware"><strong>Hardware</strong></a></li>
          <li><a href="/about"><strong>Despre Noi</strong></a></li>
          <li><a href="/contact"><strong>Contact</strong></a></li>
          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown"><strong>Servicii</strong><b class="caret"></b></a>
            <ul class="dropdown-menu">
              <li><a href="/servicii/servicii">Servicii IT&C </a></li>
              <li><a href="/servicii/consultanta">Consultanta IT&C </a></li>
              <li class="divider"></li>
              <li class="dropdown-header">Parteneri</li>
              <li><a href="/parteneri">Partenerii nostri</a></li>
            </ul>
          </li>
        </ul>
        <ul class="nav …
Run Code Online (Sandbox Code Playgroud)

html jquery twitter-bootstrap twitter-bootstrap-3

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

在自定义500处理程序中捕获错误文本

在我的某个地方,我抛出了一个错误,尤其是这个错误:

views.py

from xmlrpclib import Fault

def some_function(request):
    if ....:
        return Fault(-1, 'foo')
Run Code Online (Sandbox Code Playgroud)

然后,也在views.py中,我有自定义500处理程序来捕获服务器错误:

def my_custom_500(request):
    context = {...}
    ### Here is where I need to catch `'foo'` 
    ### in order to put it in the context and pass it to the template
    render(request, '500.html', context)
Run Code Online (Sandbox Code Playgroud)

无论如何,我可以访问该错误消息吗?谢谢

django

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

nginx.conf中的http指令错误

这是我的/home/ubuntu/project/nginx.conf样子:

http {

    # configuration of the server
    server {
        # the port your site will be served on
        listen      80;
        # the domain name it will serve for
        server_name ec2-xxx-xxx-xxx-xxx.eu-central-1.compute.amazonaws.com; # substitute your machine's IP address or FQDN
        charset     utf-8;

        # max upload size
        client_max_body_size 75M;   # adjust to taste

        # Django media
        location /media  {
            alias /home/ubuntu/project/media;  # your Django project's media files - amend as required
        }

        location /static {
            alias /home/ubuntu/project/static; # your Django …
Run Code Online (Sandbox Code Playgroud)

nginx

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