小编dev*_*jim的帖子

STATICFILES_DIR,STATIC_ROOT和MEDIA_ROOT之间的差异

这三个静态URL有什么区别?

我不确定我是对的,我MEDIA_ROOT用来存储我上传的照片(通过models.ImageField())

但是,我为我的管理员创建了一个JS脚本admin.py.我将媒体定义如下:

....
class Media:
      js = ('/admin/custom.js', )
Run Code Online (Sandbox Code Playgroud)

和我的settings.py:

 ....
 STATIC_ROOT = "/home/user/project/django1/top/listing/static"
Run Code Online (Sandbox Code Playgroud)

我添加了custom.jsSTATIC_ROOT/admin/custom.js,但它不工作.投掷404未找到错误.

然后我改变STATIC_ROOTSTATICFILES_DIRS,和它的作品!

....
STATICFILES_DIRS = "/home/user/project/django1/top/listing/static"
Run Code Online (Sandbox Code Playgroud)

所以,我不明白这里发生了什么.事实上,我只是不明白STATIC_ROOT和之间有什么区别STATICFILES_DIRS.

目前我正在通过virtualenv在我的机器上测试Django,还没有部署,这是STATIC_ROOT不工作的原因??

python django django-static django-staticfiles

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

仅允许某些国家的流量访问特定页面

--with-http_geoip_module用于识别流量.有些页面我只想让某个国家访问.这是配置:

对于 http

 http{
    geoip_country  /usr/share/GeoIP/GeoIP.dat; # the country IP database
    map $geoip_country_code $allowed_country {
            default 0;
            US 1;
            UK 1;
            HK 1; 

     }

  }
Run Code Online (Sandbox Code Playgroud)

location指令:

location = /testing {
            if ($allowed_country = 0) {

                    return 301 ;
              }
    }
Run Code Online (Sandbox Code Playgroud)

问题是当我使用US/ HKIP时,我收到404错误.我做错了什么?

UPDATE

这是我的完整conf档案:

http {
include       /etc/nginx/mime.types;
default_type  application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  /var/log/nginx/access.log  main;

geoip_country  /usr/share/GeoIP/GeoIP.dat; # the …
Run Code Online (Sandbox Code Playgroud)

system-administration nginx geoip server

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

django rest框架 - 无法获得基于类的视图权限

这是我的代码:

serializers.py

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ( 'username', 'email')


class AllListingSerializer(serializers.ModelSerializer):
    class Meta:
        model = Listing
        fields = ('name', 'desc', 'thumbnail', 'office_no', 'mobile_no', 'email', 'web ')
Run Code Online (Sandbox Code Playgroud)

views.py

class UserViewSet(generics.ListCreateAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer

class AllListing(generics.ListCreateAPIView):
    queryset = Listing.objects.all()
    serializer_class = AllListingSerializer
Run Code Online (Sandbox Code Playgroud)

urls.py

urlpatterns = patterns('',
                        url(r'^$', apiview.UserViewSet),
                        url(r'^listings/$', apiview.AllListing),
                        )
Run Code Online (Sandbox Code Playgroud)

但是当我转到它显示的基本网址时

init()接受1个位置参数,但给出2个

当我转到'/ listings /'网址时,它会给我404 Page Not Found,但我在db中的列表很少.

我在django很新.我无法弄清楚他们有什么问题.我在virtualwrappr,python 3.4中使用Django 1.7.1.

django django-rest-framework

6
推荐指数
1
解决办法
3794
查看次数

如何在DRF中序列化自定义用户模型

我已经制作了一个自定义用户模型,通过参考教程,这就是我如何序列化新用户模型:

Serializers.py

from django.conf import settings
User = settings.AUTH_USER_MODEL

class UserSerializer(serializers.ModelSerializer):
    post = serializers.PrimaryKeyRelatedField(many=True, queryset=Listing.objects.all())
    class Meta(object):
        model = User
        fields = ('username', 'email','post')
Run Code Online (Sandbox Code Playgroud)

Views.py

from django.conf import settings
User = settings.AUTH_USER_MODEL
class UserList(generics.ListAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用这个序列化器时,我得到了

'str'对象没有属性'_meta'

我做错了什么?

python django serialization django-serializer django-rest-framework

5
推荐指数
1
解决办法
2787
查看次数

woocommerce 按顺序获取原始商品单价

我想在客户电子邮件和客户查看订单页面中显示项目单价(包括销售价格和正常价格)。

在 woocommerce 订单行项目对象中,您只能看到项目行小计、小计、数量等。但在数据中并未显示原价单价(包括正价和销售价)。我最多可以通过添加折扣金额和行小计来获得单价。但我无法知道该物品是否在销售以及响应价格。

现在我可以使用以下代码来获取订单项目的单价:

$product = $item->get_product();
$product->get_price_html();
Run Code Online (Sandbox Code Playgroud)

问题get_price_html()是显示实时产品价格。这意味着如果我在一段时间后更改了产品价格,那么之前订单详情中的价格也会发生变化。当有人查看旧订单时,这会引起很多混乱。

那么如何才能在订单明细中获取订单项的原始单价呢?

php wordpress woocommerce

5
推荐指数
1
解决办法
1386
查看次数

如何通过jQuery获取.find()对象中的最后一个元素

我有这样的DOM:

<div class="parent">
   <button class="add-tr">Add</button>
   <table class="child">
   <tr data="0"></tr>
   <tr data="1"></tr>
   ...
   </table>
</div>
<div class="parent">
   <button class="add-tr">Add</button>
   <table class="child">
   <tr data="0"></tr>
   <tr data="1"></tr>
   ...
   </table>
</div>
...
Run Code Online (Sandbox Code Playgroud)

当我单击“添加”按钮时,我想从它自己的最后一个父类获取data属性的值。

我正在使用此方法来获取最后一个元素,但是它不起作用。

$('.add-tr').click( function() {
   var last = $(this).parent().find('.child:last').attr('data');
   alert(last);
})
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?或任何其他建议来获取表中的最后一个元素?

更新 是的,我发现了问题,原来是我忘记了'tr'。谢谢你们的回答。你们所有的人都给出了正确的答案,但愿我能接受您所有的答案。谢谢

javascript jquery

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

update_or_create不更新/创建对象

我发现django 1.7现在支持queryset中的update_or_create()方法.但是,当我尝试它时,它无法正常工作.我尝试这个时没有创建对象:

models.py

 class Model1(models.Model):
    name = models.CharField(max_length=100)
    status = models.CharField(max_length=100)
    user = models.ForeignKey(User, null=True, blank=True)

 class Model2(models.Model)
    model = models.ForeignKey(Model1, null=True, blank=True) 
    field1 = models.CharField(max_length=100)
    field2 = models.CharField(max_length=100)
    user = models.ForeignKey(User, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

views.py

 def ModelUpdate(request)
     model1 = get_object_or_404(Model1, pk=request.POST['lid'])
     model1.status =2
     model1.save()

     #based on the model1, we want to create or update model2 
     datadict ={'field1' : 1, 'field2':2,}
     model2, created = Model2.objects.update_or_create(model=model1,
                                                       defaults=datadict) 
     if created:
         print('model2 obj created') #for checking purpose
    else: 
         print('model2 obj not created')

    return render(request,'updated.html', …
Run Code Online (Sandbox Code Playgroud)

django django-models django-queryset

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

在电子js中打开辅助/子窗口时对象已被破坏

在主窗口中,单击按钮时,将通过 ipc 调用弹出第二个/子窗口。这在第一次打开弹出窗口时有效。如果我关闭弹出窗口并重新打开它,我将收到此错误:

未捕获的异常:错误:对象已在 EventEmitter 的错误(本机)处被销毁。(/home/xxxx/electron/fin/main.js:36:21) 在 EventEmitter.emit (events.js:188:7) 在 EmitOne (events.js:96:13) 在 EventEmitter。(/home/xxxx/electron/fin/node_modules/electron-prebuilt/dist/resources/electron.asar/browser/api/web-contents.js:156:13) at emitTwo (events.js:106:13) at EventEmitter.emit (events.js:191:7)

#main.js on app ready:
mainWindow = new BrowserWindow({width: 800, height: 600})


  mainWindow.loadURL(`file://${__dirname}/index.html`)


  mainWindow.webContents.openDevTools()


  mainWindow.on('closed', function () {

    mainWindow = null
  })

  let popWindow = new BrowserWindow({parent: mainWindow, width: 450, height: 450, show: false});
  popWindow.loadURL(`file://${__dirname}/app/pop.html`);
  popWindow.webContents.openDevTools();

  ipc.on('toggle-popwindow', function(){
         popWindow.show();    
  });
Run Code Online (Sandbox Code Playgroud)

当我在“关闭”方法中添加 hide() 时:

popWindow.on('closed', function (event) {
popWindow.hide();
});
Run Code Online (Sandbox Code Playgroud)

我明白了:

Uncaught Exception:
Error: Object has been destroyed
Run Code Online (Sandbox Code Playgroud)

问题是什么?

javascript node.js electron

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

如何在自定义模板中获取所有 woocommerce 运输包裹

我需要让客户编辑他们的待付款订单。默认情况下,woocommerce 仅允许更改付款方式。因此,我为此功能创建了一个自定义模板。

我现在遇到的问题是我无法获取模板中的运输包裹。这是我从 wc_cart_totals_shipping_html() 改编的代码:

$packages = WC()->shipping->get_packages();
print_r($packages);
foreach ( $packages as $i => $package ) {
    //blah blah blah        
}
Run Code Online (Sandbox Code Playgroud)

print_r($packages) 给我空数组。但在结账页面上,一切正常。知道为什么吗?或者,通过其他方式获取运输包裹?

php wordpress class woocommerce

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

Fabric.js - 居中后对象无法拖动/移动

我使用farbric.js在应用程序中编辑图像.图像应该能够调整大小,移动/拖动和旋转.问题是当我旋转图像时(通过单击按钮),它不会在画布的中心.所以我必须使用centerObject()才能使它工作.但是,完成此操作后,图像无法再拖动.

这是处理旋转的函数(它在类中):

 rotationset : function(angle, offsetX, offsetY){
    // this.obj is the origin object  
    this.Obj.left = offsetX;
    this.Obj.top =  offsetY;
    this.Obj.angle = angle;
    this.Obj.center();//center the image
    //this.canvas also initialized on load.
    this.canvas.calcOffset();
    this.canvas.renderAll();

}
Run Code Online (Sandbox Code Playgroud)

那么,问题是什么?还有其他任何修复方法吗?

javascript jquery fabricjs

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

适用于iOS和Android的自定义字体

我遵循此步骤在RN中安装自定义。它可以在Android中使用,但不能在ios中使用。

在ios上运行时,显示找不到字体错误。

如何使其适用于ios和Android?

fonts android ios react-native

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

如何在 DRF 中使用 django-taggit

我无法从 django-taggit 序列化标签。我遵循了here的说明,但它已经过时了。

这是我所做的:

视图.py

class TagsSerializer(serializers.WritableField):

    def from_native(self, data):
        if type(data) is not list:
            raise ParseError("expected a list of data")
        return data

    def to_native(self, obj):
        if type(obj) is not list:
            return [tag.name for tag in obj.all()]
        return obj
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

'module' 对象没有属性 'WritableField

显然 WritableField 已被弃用。

我正在使用 django 1.8、DRF 3.2 和 django-taggit-0.17。

django serialization django-taggit django-rest-framework

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