小编Aam*_*amu的帖子

在ubuntu 14.04中安装最新的nodejs版本

这是我在ubuntu 14.04 LTS中安装nodejs的方式:

sudo add-apt-repository ppa:chris-lea/node.js

sudo apt-get install nodejs
Run Code Online (Sandbox Code Playgroud)

当我用这个检查节点版本时:

node -v
Run Code Online (Sandbox Code Playgroud)

我明白了

v0.10.37
Run Code Online (Sandbox Code Playgroud)

但最新版本是4.2.6和5.5.0.我如何获得最新版本或更新版本?

ubuntu node.js

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

在Django和Django Rest Framework中使用一个请求创建多个对象

我使用Django作为后端服务器,使用Vue.js作为前端Movie应用程序.

我有一个Ticket模型

class MovieTicket(models.Model):
    show = models.ForeignKey(Show)
    seat = models.ForeignKey(Seat)
    user = models.ForeignKey(User)
    purchased_at = models.DateTimeField(default=timezone.now)
    qrcode = models.ImageField(upload_to='qrcode', blank=True, null=True)
    qrcode_data = models.CharField(max_length=255, unique=True, blank=True)

    class Meta:
        unique_together = ('show', 'seat')
Run Code Online (Sandbox Code Playgroud)

和它相关的Serializer

class MovieTicketSerializer(serializers.ModelSerializer):
    class Meta:
        model = MovieTicket
        fields = '__all__'
Run Code Online (Sandbox Code Playgroud)

要购买新的Ticket,有一个视图映射到此URL http://dev.site.com/api/movies/buy-ticket/:

@api_view(['POST'])
@permission_classes([IsAuthenticated])
def buy_ticket(request):
    serialized = MovieTicketSerializer(data=request.data)
    if serialized.is_valid():
        serialized.save()
        return Response(serialized.data, status=status.HTTP_201_CREATED)
    return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
Run Code Online (Sandbox Code Playgroud)

现在从前端(Vue.js)我可以创建一个新的电影票:

const formBody = {
    show: this.$store.state.showSelected.showTime.id,
    user: this.$store.state.user.id,

    // selectedSeats is an array of seats that have …
Run Code Online (Sandbox Code Playgroud)

django django-rest-framework

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

如何使用django rest框架和自定义用户模型创建新用户

我有一个自定义用户模型,我使用django-rest-framework来创建API

models.py:

class User(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(
        unique=True,
        max_length=254,
    )
    first_name = models.CharField(max_length=15)
    last_name = models.CharField(max_length=15)
    mobile = models.IntegerField(unique=True)
    date_joined = models.DateTimeField(default=timezone.now)
    is_active = models.BooleanField(default=True)
    is_admin = models.BooleanField(default=False)
Run Code Online (Sandbox Code Playgroud)

serializers.py:

class UserSerializer(serializers.ModelSerializer):
    password1 = serializers.CharField(write_only=True)
    password2 = serializers.CharField(write_only=True)

    class Meta:
        model = User
        fields = ('first_name', 'last_name', 'email', 'mobile', 'password1', 'password2')
Run Code Online (Sandbox Code Playgroud)

views.py:

@api_view(['POST'])
@permission_classes((AllowAny,))
def create_user(request):
    serialized = UserSerializer(data=request.data)
    if serialized.is_valid():
        User.objects.create_user(
            serialized.save()
        )
        return Response(serialized.data, status=status.HTTP_201_CREATED)
    else:
        return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试创建一个新用户时,我收到此错误:

得到一个TypeError电话User.objects.create().这可能是因为序列化程序类上的可写字段不是有效参数User.objects.create().您可能需要将该字段设置为只读,或重写UserSerializer.create()方法以正确处理此字段.

这可能是因为User模型中没有password1或password2字段.但是,如何创建API以使用django-rest-framework创建新用户?

django django-users django-rest-framework

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

如何检测是否单击了$(this)元素以外的鼠标

如果在元素内单击鼠标(这里.block),我想应用一些样式.如果单击该元素,则获取该元素$(this)并对其进行样式化.此后,当用户点击$(this)元素以外的其他内容时,我想将其更改回默认样式.如何检测鼠标是否被单击而不是$(this)元素.

js脚本到目前为止:

$( document ).ready(function() {

    // when a block is clicked get that specific block
    $('.block').click(function() {
        var block = $(this);
        block.css('background','red');
    });

    //if clicked other than the block do stuff

});
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

html javascript css jquery

13
推荐指数
3
解决办法
1733
查看次数

Django REST框架按字段分组并添加额外内容

我有票预订模型

class Movie(models.Model):
    name = models.CharField(max_length=254, unique=True)

class Show(models.Model):
    day = models.ForeignKey(Day)
    time = models.TimeField(choices=CHOICE_TIME)
    movie = models.ForeignKey(Movie)

class MovieTicket(models.Model):
    show = models.ForeignKey(Show)
    user = models.ForeignKey(User)
    booked_at = models.DateTimeField(default=timezone.now)
Run Code Online (Sandbox Code Playgroud)

我想用其user字段过滤MovieTicket 并根据其show字段对它们进行分组,并按照最近预订的时间对它们进行排序.并json使用Django REST框架回复数据,如下所示:

[
    {
        show: 4,
        movie: "Lion king",
        time: "07:00 pm",
        day: "23 Apr 2017",
        total_tickets = 2
    },
    {
        show: 7,
        movie: "Gone girl",
        time: "02:30 pm",
        day: "23 Apr 2017",
        total_tickets = 1
    }
]
Run Code Online (Sandbox Code Playgroud)

我试过这种方式:

>>> MovieTicket.objects.filter(user=23).order_by('-booked_at').values('show').annotate(total_tickets=Count('show'))
<QuerySet [{'total_tickets': 1, …
Run Code Online (Sandbox Code Playgroud)

django django-rest-framework

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

django - 从多对一关系中获取对象集

请看看这些型号:

class Album(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=200)
    pub_date = models.DateTimeField(default=datetime.now)


class Photo(models.Model):
    album = models.ForeignKey(Album, default=3)
    image = models.ImageField(upload_to=get_upload_file_name)
    caption = models.CharField(max_length=200)
    pub_date = models.DateTimeField(default=datetime.now)
Run Code Online (Sandbox Code Playgroud)

如何获取特定相册的照片集??? 以及如何从照片实例本身获取相册

我试过这个:

# To get the set of photos from the user (tika) album:
>>>t = User.objects.get(username='tika')
>>>t_album = Album.objects.get(user=t)
>>>t_album 
<Album: tika_album>
>>>t_album.image_set.all()
AttributeError: 'Album' Object has no attribute 'image_set'
Run Code Online (Sandbox Code Playgroud)

请指导我正确的方向.谢谢.

django django-models django-orm django-views

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

根据发布日期在同一页面显示不同模型的对象

我的应用程序有三种不同的型号.一切都按照我的预期运作.

class Tender(models.Model):
    title = models.CharField(max_length=256)
    description = models.TextField()
    department = models.CharField(max_length=50)
    address = models.CharField(max_length=50)
    nature_of_work = models.CharField(choices=WORK_NATURE, max_length=1)
    period_of_completion = models.DateField()
    pubdat = models.DateTimeField(default=timezone.now)    

class Job(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    title = models.CharField(max_length=256)
    qualification = models.CharField(max_length=256)
    interview_type = models.CharField(max_length=2, choices=INTERVIEW_TYPE)
    type_of_job = models.CharField(max_length=1, choices=JOB_TYPE)
    number_of_vacancies = models.IntegerField()
    employer = models.CharField(max_length=50)
    salary = models.IntegerField()    
    pubdat = models.DateTimeField(default=timezone.now)

class News(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    title = models.CharField(max_length=150)
    body = models.TextField()
    pubdat = models.DateTimeField(default=timezone.now)
Run Code Online (Sandbox Code Playgroud)

现在,我在每个模型的单独页面上显示每个模型(例如,在作业页面中,我只显示作业.).但现在在主页上,我想根据他们在同一页面上发布的日期显示这些内容.如何在同一页面上显示不同模型的不同对象?我是否制作单独的模型class Post,然后在创建新对象时使用信号创建新帖子Tender,或者Job,或者 …

django django-templates django-models django-views

12
推荐指数
3
解决办法
4486
查看次数

如何使用对象列表过滤多个字段

我想构建一个像QuoraMedium这样的webapp ,用户可以在其中关注用户或某些主题.

例如:userA跟随(userB,userC,tag-Health,tag-Finance).

这些是模型:

class Relationship(models.Model):
    user = AutoOneToOneField('auth.user')
    follows_user = models.ManyToManyField('Relationship', related_name='followed_by')
    follows_tag = models.ManyToManyField(Tag)

class Activity(models.Model):
    actor_type = models.ForeignKey(ContentType, related_name='actor_type_activities')
    actor_id = models.PositiveIntegerField()
    actor = GenericForeignKey('actor_type', 'actor_id')
    verb = models.CharField(max_length=10)
    target_type = models.ForeignKey(ContentType, related_name='target_type_activities')
    target_id = models.PositiveIntegerField()
    target = GenericForeignKey('target_type', 'target_id')
    tags = models.ManyToManyField(Tag)
Run Code Online (Sandbox Code Playgroud)

现在,这将给出以下列表:

following_user = userA.relationship.follows_user.all()
following_user
[<Relationship: userB>, <Relationship: userC>]
following_tag = userA.relationship.follows_tag.all()
following_tag
[<Tag: tag-job>, <Tag: tag-finance>]
Run Code Online (Sandbox Code Playgroud)

要过滤我试过这种方式:

Activity.objects.filter(Q(actor__in=following_user) | Q(tags__in=following_tag))
Run Code Online (Sandbox Code Playgroud)

但由于actor是GenericForeignKey,我收到一个错误:

FieldError:字段'actor'不生成自动反向关系,因此不能用于反向查询.如果是GenericForeignKey,请考虑添加GenericRelation.

如何使用用户列表和用户遵循的标记列表过滤唯一的活动?具体来说,我将如何使用对象列表过滤GenericForeignKey以获取以下用户的活动.

django django-queryset

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

django - 关于sorl-thumbnail的事情

我正在使用sorl-thumbnail为我的项目创建缩略图.我只在模板中实现它,而不是在模型或视图中实现它.每个缩略图都与原始图像相关联,这些图像由灯箱使用.作为一个新手,我想知道它的一些功能:

  1. 是否只在它中实现它template是相同的,如在它中使用它modelsview为每个创建一个新的缩略图?
  2. 如何为不同的图像配置不同的缩略图,因为它可以在easy_thumbnail
  3. 如何覆盖默认值,例如:覆盖值Quality等.

最后,它是一种正确的实施方式吗?任何建议或建议将不胜感激.谢谢.

HTML:

{% for photo in photos %}
    <div class="thumbnail_container">
        <a href="{{MEDIA_URL}}{{photo.image}}" class="gallery" title="{{photo.title}}">
            {% thumbnail photo.image "200x200" as im %}
                <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}"  class="thumbnail">
            {% endthumbnail %}
        </a>
    </div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

编辑:

如何为sorl-thumbnails创建这样的东西,这可以通过简单的缩略图来完成:

settings.py

THUMBNAIL_ALIASES = {
    '': {
        'avatar': {'size': (100,100), 'crop': True},
        'forum': {'size': (203,103), 'crop':False},
    },
}
Run Code Online (Sandbox Code Playgroud)

然后在模板中我可以从settings.py中定义的别名中选择:

<img src="/static/{{forum.image |thumbnail_url:'forum' }}">
Run Code Online (Sandbox Code Playgroud)

要么

<img …
Run Code Online (Sandbox Code Playgroud)

django django-templates django-models django-views sorl-thumbnail

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

用于ContentType对象的django-rest-framework序列化程序

我正在构建一个活动模型,有点类似于这个.它有演员,动词​​和目标.

class Activity(models.Model):
    actor_type = models.ForeignKey(ContentType, related_name='actor_type_activities')
    actor_id = models.PositiveIntegerField()
    actor = GenericForeignKey('actor_type', 'actor_id')
    verb = models.CharField(max_length=10)
    target_type = models.ForeignKey(ContentType, related_name='target_type_activities')
    target_id = models.PositiveIntegerField()
    target = GenericForeignKey('target_type', 'target_id')
    pub_date = models.DateTimeField(default=timezone.now)
Run Code Online (Sandbox Code Playgroud)

现在,无论何时创建任何模型(投标,作业和新闻)的新对象,都会创建一个新的Activity对象,其中target包含这三个模型中任何一个的对象.

例如.用户(演员)发表(动词)标题(目标)

class Tender(models.Model):
    title = models.CharField(max_length=256)
    description = models.TextField()

class Job(models.Model):
    title = models.CharField(max_length=256)
    qualification = models.CharField(max_length=256)

class News(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    title = models.CharField(max_length=150)
Run Code Online (Sandbox Code Playgroud)

为了得到这些数据,我正在制作一个API,它将获得所需的json数据.我正在使用django-rest-framework,而且非常新.

class ActorSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ('id', 'username', 'email')

class ActivitySerializer(serializers.HyperlinkedModelSerializer):
    actor = …
Run Code Online (Sandbox Code Playgroud)

django django-contenttypes django-rest-framework

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