小编vla*_*lad的帖子

将json文件导入Django模型

我有一个json格式的文件,具有这样的结构:

{
    "Admiralty Islands": [
        [
            "Up to 1 kg",
            "5.00"
        ], 
        [
            "1 - 10 kg", 
            "10.00"
        ], 
    ], 
    "Afghanistan": [
        [
            "Up to 1 kg",
            "15.00"
        ], 
        [
            "1 - 10 kg", 
            "20.00"
        ], 
    ], 
...
}
Run Code Online (Sandbox Code Playgroud)

还有三种型号:

class Country(models.Model):
    name = models.CharField(max_length=128, unique=True)

class Weight(models.Model):
    name = models.CharField(max_length=128, unique=True)
    min_weight = models.IntegerField()
    max_weight = models.IntegerField()

class Shipping(models.Model):
    country = models.ForeignKey(Country)
    weight = models.ForeignKey(Weight)
    price = models.DecimalField(max_digits=7, decimal_places=2)
Run Code Online (Sandbox Code Playgroud)

使用json文件导入数据库的最正确方法是什么?

我应该将json文件转换为fixture文件吗?但是如何处理表之间的关系呢?或者写出view类似的东西更好:

f = open('file.json', 'r')
obj = …
Run Code Online (Sandbox Code Playgroud)

python django json

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

重命名功能,保持向后兼容性

我重构我的旧代码,并希望根据pep8更改函数的名称.但是我希望保持与系统的旧部分的向后兼容性(项目的完全重构是不可能的,因为函数名称是API的一部分,并且一些用户使用旧的客户端代码).

简单的例子,旧代码:

def helloFunc(name):
    print 'hello %s' % name
Run Code Online (Sandbox Code Playgroud)

新:

def hello_func(name):
    print 'hello %s' % name
Run Code Online (Sandbox Code Playgroud)

但这两个功能应该有效:

>>hello_func('Alex')
>>'hello Alex'
>>helloFunc('Alf')
>>'hello Alf'
Run Code Online (Sandbox Code Playgroud)

我在考虑:

def helloFunc(name):
    hello_func(name)
Run Code Online (Sandbox Code Playgroud)

,但我不喜欢它(在项目中约有50个函数,我觉得它看起来很混乱).

最好的方法是什么(不包括重复的资源)?有可能创建一些通用装饰器吗?

谢谢.

python refactoring

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

使用jQuery更改图像

我有一个使用jquery-ui手风琴的html页面.现在我必须在此页面中添加2图像,该图像应根据活动部分而有所不同.我该怎么做?

HTML:

<div id="acc">
    <h1>Something</h1>
    <div>Text text text</div>
    <h1>Something too</h1>
    <div>Text2 text2 text2</div>
</div>
<div id="pic">
    <img class="change" src="1.png"/>
    <img class="change" src="2.png"/>
</div>
Run Code Online (Sandbox Code Playgroud)

JS:

$(document).ready(function() {
    $("#acc").accordion({
        change: function(event, ui) {
            /* I'm think something need here */
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

html jquery jquery-ui

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

保存扩展的用户配置文件

我需要在注册时保存有关用户的其他信息.我用这个: https://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users ,但我还是坚持.已创建关系,但该字段key为空.

models.py

from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save

class UserProfile(models.Model):
    user = models.OneToOneField(User, unique=True)
    key = models.CharField(max_length=20, null=True, blank=True)

    def __unicode__(self):
        return u'%s' % self.user

def create_user_profile(sender, instance, created, **kwargs):
    if created:
        UserProfile.objects.create(user=instance)

post_save.connect(create_user_profile, sender=User)
Run Code Online (Sandbox Code Playgroud)

views.py

def registration(request):
    form = RegistrationForm(request.POST or None)
    if form.is_valid():
        first_name = form.cleaned_data['first_name']
        last_name = form.cleaned_data['last_name']
        email = form.cleaned_data['email']
        password = form.cleaned_data['password']
        user = User.objects.create_user(login, email, password)
        user.first_name = first_name
        user.last_name = last_name
        user.is_active = …
Run Code Online (Sandbox Code Playgroud)

django django-models

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

如何使用jQuery获取id元素的一部分?

我如何从带有id ="old- [id]"的span获得"Some text"并将其放入id ="new- [id]"?

<span id="old-1">Some text</span>
<span id="new-1"></span>
<span id="old-5">Some text</span>
<span id="new-5"></span>
Run Code Online (Sandbox Code Playgroud)

我不知道如何在id没有substring()功能的情况下获得数字部分.我认为存在是更正确的解决方案.谢谢.

jquery

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

如何防止表单提交非提交按钮?

HTML:

<form id="form" action="/" method='post'>
<button>Button</button>
<input type="text">
<input type="submit" id="send-form" value="Send">
</form>
Run Code Online (Sandbox Code Playgroud)

JS:

$('#form').submit(function() {
    console.log('send');
    return false;
});
Run Code Online (Sandbox Code Playgroud)

为什么当我按下时Button,表单被提交(我需要这个元素进行另一个动作)?怎么预防这个?

javascript jquery

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

SELECT中的MySQL性能问题

简单的数据库:

CREATE TABLE data (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  code VARCHAR(50),
  value VARCHAR(10),
);
Run Code Online (Sandbox Code Playgroud)

目前有大约2百万行.

查询如下:

SELECT value FROM data WHERE `code`='12345';
Run Code Online (Sandbox Code Playgroud)

执行10-12秒.

提高简单select查询性能的最佳方法是什么?

mysql performance

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