这是我在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.我如何获得最新版本或更新版本?
我使用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-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创建新用户?
如果在元素内单击鼠标(这里.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)
我有票预订模型
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) 请看看这些型号:
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)
请指导我正确的方向.谢谢.
我的应用程序有三种不同的型号.一切都按照我的预期运作.
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,或者 …
我想构建一个像Quora或Medium这样的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以获取以下用户的活动.
我正在使用sorl-thumbnail为我的项目创建缩略图.我只在模板中实现它,而不是在模型或视图中实现它.每个缩略图都与原始图像相关联,这些图像由灯箱使用.作为一个新手,我想知道它的一些功能:
template是相同的,如在它中使用它models或view为每个创建一个新的缩略图?easy_thumbnail?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
我正在构建一个活动模型,有点类似于这个包.它有演员,动词和目标.
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 ×8
django-views ×3
css ×1
django-orm ×1
django-users ×1
html ×1
javascript ×1
jquery ×1
node.js ×1
ubuntu ×1